OfficeToPdf .net代码

项目中需要添加引用,分别为Microsoft.Office.Interop.Excel.dll,Microsoft.Office.Interop.Word.dll,Microsoft.Office.Interop.PowerPoint.dll。引用位置为:C:\Program Files\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office14 


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
///OfficeToPdf 的摘要说明
/// </summary>
public class OfficeToPdf
{
    public OfficeToPdf()
    {
        //
        //TODO: 在此处添加构造函数逻辑
        //
    }

    /// 把Word文件转换成为PDF格式文件
    /// </summary>
    /// <param name="sourcePath">源文件路径</param>
    /// <param name="targetPath">目标文件路径</param> 
    /// <returns>true=转换成功</returns>
    public static bool WordToPDF(string sourcePath, string targetPath)
    {
        bool result = false;
        Microsoft.Office.Interop.Word.WdExportFormat exportFormat = Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF;
        Microsoft.Office.Interop.Word.ApplicationClass application = null;

        Microsoft.Office.Interop.Word.Document document = null;
        try
        {
            application = new Microsoft.Office.Interop.Word.ApplicationClass();
            application.Visible = false;
            document = application.Documents.Open(sourcePath);
            document.SaveAs2();
            document.ExportAsFixedFormat(targetPath, exportFormat);
            result = true;
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
            result = false;
        }
        finally
        {
            if (document != null)
            {
                document.Close();
                document = null;
            }
            if (application != null)
            {
                application.Quit();
                application = null;
            }
            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();
            GC.WaitForPendingFinalizers();
        }
        return result;
    }

    /// <summary>
    /// 把Microsoft.Office.Interop.Excel文件转换成PDF格式文件
    /// </summary>
    /// <param name="sourcePath">源文件路径</param>
    /// <param name="targetPath">目标文件路径</param> 
    /// <returns>true=转换成功</returns>
    public static bool ExcelToPDF(string sourcePath, string targetPath)
    {
        bool result = false;
        Microsoft.Office.Interop.Excel.XlFixedFormatType targetType = Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF;
        object missing = Type.Missing;
        Microsoft.Office.Interop.Excel.ApplicationClass application = null;
        Microsoft.Office.Interop.Excel.Workbook workBook = null;
        try
        {
            application = new Microsoft.Office.Interop.Excel.ApplicationClass();
            application.Visible = false;
            workBook = application.Workbooks.Open(sourcePath);
            workBook.SaveAs();
            workBook.ExportAsFixedFormat(targetType, targetPath);
            result = true;
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
            result = false;
        }
        finally
        {
            if (workBook != null)
            {
                workBook.Close(true, missing, missing);
                workBook = null;
            }
            if (application != null)
            {
                application.Quit();
                application = null;
            }
            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();
            GC.WaitForPendingFinalizers();
        }
        return result;
    }
    /// <summary>
    /// 把PowerPoint文件转换成PDF格式文件
    /// </summary>
    /// <param name="sourcePath">源文件路径</param>
    /// <param name="targetPath">目标文件路径</param> 
    /// <returns>true=转换成功</returns>
    public static bool PowerPointToPDF(string sourcePath, string targetPath)
    {
        bool result;
        Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType targetFileType = Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsPDF;
        object missing = Type.Missing;
        Microsoft.Office.Interop.PowerPoint.ApplicationClass application = null;
        Microsoft.Office.Interop.PowerPoint.Presentation persentation = null;
        try
        {
            application = new Microsoft.Office.Interop.PowerPoint.ApplicationClass();
            //application.Visible = MsoTriState.msoFalse;
            persentation = application.Presentations.Open(sourcePath, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse);
            persentation.SaveAs(targetPath, targetFileType, Microsoft.Office.Core.MsoTriState.msoTrue);

            result = true;
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
            result = false;
        }
        finally
        {
            if (persentation != null)
            {
                persentation.Close();
                persentation = null;
            }
            if (application != null)
            {
                application.Quit();
                application = null;
            }
            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();
            GC.WaitForPendingFinalizers();
        }
        return result;
    }
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值