C#实现MS-Office文档转Pdf(Word、Execel、PowerPoint、Visio、Project)
2016-12-13 10:14
651 查看
using System; using Microsoft.Office.Core; namespace Office { class Util { private Util() { } /// <summary> /// 把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, MsoTriState.msoTrue, MsoTriState.msoFalse, 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; } /// <summary> /// 把Visio文件转换成PDF格式文件 /// </summary> /// <param name="sourcePath">源文件路径</param> /// <param name="targetPath">目标文件路径</param> /// <returns>true=转换成功</returns> public static bool VisioToPDF(string sourcePath, string targetPath) { bool result; Microsoft.Office.Interop.Visio.VisFixedFormatTypes targetType = Microsoft.Office.Interop.Visio.VisFixedFormatTypes.visFixedFormatPDF; object missing = Type.Missing; Microsoft.Office.Interop.Visio.ApplicationClass application = null; Microsoft.Office.Interop.Visio.Document document = null; try { application = new Microsoft.Office.Interop.Visio.ApplicationClass(); application.Visible = false; document = application.Documents.Open(sourcePath); document.Save(); document.ExportAsFixedFormat(targetType, targetPath, Microsoft.Office.Interop.Visio.VisDocExIntent.visDocExIntentScreen, Microsoft.Office.Interop.Visio.VisPrintOutRange.visPrintAll); result = true; } catch (Exception e) { Console.WriteLine(e.Message); result = false; } finally { if (application != null) { application.Quit(); application = null; } GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); GC.WaitForPendingFinalizers(); } return result; }
相关文章推荐
- C#实现MS-Office文档转Pdf(Word、Execel、PowerPoint、Visio、Project)
- 使用MSOffice .NET API 将文档(Word \ Excel \ PowerPoint \ Visio \ text \ XML \ RTF \ CSV等)转换为PDF
- C#将文档(Word\ Excel\ PowerPoint\ Visio\ text\ XML\ RTF\ CSV )转成Pdf
- C#实现office文档转换为PDF或xps的一些方法(留存备用)
- C# Word文档转PDF的实现
- C#实现office文档转换为PDF或xps的一些方法
- Java解析OFFICE(word,excel,powerpoint)以及PDF的实现方案及开发中的点滴分享
- .NET WEB 实现office文档(word、excel、ppt)转PDF
- C#实现Office文档转Pdf的方法
- 将office文档(word,excel,powerpoint)转换为pdf
- C#实现office文档转换为PDF或xps的一些方法
- 用C#操作office组件库实现word文档的创建及文字 表格 图片的插入
- 用C#实现生成PDF文档和将WORD转换为PDF (转自海东的技术资料)
- C#利用MS的COM组件,将Office文档转成XPS、PDF
- C#实现office文档转换为PDF或xps的一些方法
- C#实现office文档转换为PDF或xps
- C# Word文档转PDF的实现
- C#实现office文档转换为PDF或xps的一些方法
- Word,Excel,Powerpoint,Txt,Pdf 等文档的在线浏览的实现
- 转:C#实现office文档转换为PDF或xps的一些方法