OfficeToPdf .net代码

来源:互联网 发布:结构图软件 编辑:程序博客网 时间:2024/06/07 17:33

项目中需要添加引用,分别为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;    }}