Office文件转PDF

  1  /// <summary>
  2     /// Office转PDF
  3     /// </summary>
  4     public class Office2PDFHelper
  5     {
  6         public Office2PDFHelper()
  7         {
  8             //
  9             // TODO: 在此处添加构造函数逻辑
 10             //
 11         }
 12         /// <summary>
 13         /// Word转换成pdf
 14         /// </summary>
 15         /// <param name="sourcePath">源文件路径</param>
 16         /// <param name="targetPath">目标文件路径</param>
 17         /// <returns>true=转换成功</returns>
 18         public static bool DOCConvertToPDF(string sourcePath, string targetPath)
 19         {
 20             bool result = false;
 21             Word.WdExportFormat exportFormat = Word.WdExportFormat.wdExportFormatPDF;
 22             object paramMissing = Type.Missing;
 23             Word.ApplicationClass wordApplication = new Word.ApplicationClass();
 24             Word.Document wordDocument = null;
 25             try
 26             {
 27                 object paramSourceDocPath = sourcePath;
 28                 string paramExportFilePath = targetPath;
 29                 Word.WdExportFormat paramExportFormat = exportFormat;
 30                 bool paramOpenAfterExport = false;
 31                 Word.WdExportOptimizeFor paramExportOptimizeFor = Word.WdExportOptimizeFor.wdExportOptimizeForPrint;
 32                 Word.WdExportRange paramExportRange = Word.WdExportRange.wdExportAllDocument;
 33                 int paramStartPage = 0;
 34                 int paramEndPage = 0;
 35                 Word.WdExportItem paramExportItem = Word.WdExportItem.wdExportDocumentContent;
 36                 bool paramIncludeDocProps = true;
 37                 bool paramKeepIRM = true;
 38                 Word.WdExportCreateBookmarks paramCreateBookmarks = Word.WdExportCreateBookmarks.wdExportCreateWordBookmarks;
 39                 bool paramDocStructureTags = true;
 40                 bool paramBitmapMissingFonts = true;
 41                 bool paramUseISO19005_1 = false;
 42                 wordDocument = wordApplication.Documents.Open(
 43                     ref paramSourceDocPath, ref paramMissing, ref paramMissing,
 44                     ref paramMissing, ref paramMissing, ref paramMissing,
 45                     ref paramMissing, ref paramMissing, ref paramMissing,
 46                     ref paramMissing, ref paramMissing, ref paramMissing,
 47                     ref paramMissing, ref paramMissing, ref paramMissing,
 48                     ref paramMissing);
 49                 if (wordDocument != null)
 50                     wordDocument.ExportAsFixedFormat(paramExportFilePath,
 51                         paramExportFormat, paramOpenAfterExport,
 52                         paramExportOptimizeFor, paramExportRange, paramStartPage,
 53                         paramEndPage, paramExportItem, paramIncludeDocProps,
 54                         paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
 55                         paramBitmapMissingFonts, paramUseISO19005_1,
 56                         ref paramMissing);
 57                 result = true;
 58             }
 59             catch
 60             {
 61                 result = false;
 62             }
 63             finally
 64             {
 65                 if (wordDocument != null)
 66                 {
 67                     wordDocument.Close(ref paramMissing, ref paramMissing, ref paramMissing);
 68                     wordDocument = null;
 69                 }
 70                 if (wordApplication != null)
 71                 {
 72                     wordApplication.Quit(ref paramMissing, ref paramMissing, ref paramMissing);
 73                     wordApplication = null;
 74                 }
 75                 GC.Collect();
 76                 GC.WaitForPendingFinalizers();
 77                 GC.Collect();
 78                 GC.WaitForPendingFinalizers();
 79             }
 80             return result;
 81         }
 82 
 83         /// <summary>
 84         /// 把Excel文件转换成PDF格式文件  
 85         /// </summary>
 86         /// <param name="sourcePath">源文件路径</param>
 87         /// <param name="targetPath">目标文件路径</param>
 88         /// <returns>true=转换成功</returns>
 89         public static bool XLSConvertToPDF(string sourcePath, string targetPath)
 90         {
 91             bool result = false;
 92             Excel.XlFixedFormatType targetType = Excel.XlFixedFormatType.xlTypePDF;
 93             object missing = Type.Missing;
 94             Excel.ApplicationClass application = null;
 95             Excel.Workbook workBook = null;
 96             try
 97             {
 98                 application = new Excel.ApplicationClass();
 99                 object target = targetPath;
100                 object type = targetType;
101                 workBook = application.Workbooks.Open(sourcePath, missing, missing, missing, missing, missing,
102                     missing, missing, missing, missing, missing, missing, missing, missing, missing);
103                 workBook.ExportAsFixedFormat(targetType, target, Excel.XlFixedFormatQuality.xlQualityStandard, true, false, missing, missing, missing, missing);
104                 result = true;
105             }
106             catch
107             {
108                 result = false;
109             }
110             finally
111             {
112                 if (workBook != null)
113                 {
114                     workBook.Close(true, missing, missing);
115                     workBook = null;
116                 }
117                 if (application != null)
118                 {
119                     application.Quit();
120                     application = null;
121                 }
122                 GC.Collect();
123                 GC.WaitForPendingFinalizers();
124                 GC.Collect();
125                 GC.WaitForPendingFinalizers();
126             }
127             return result;
128         }
129         ///<summary>        
130         /// 把PowerPoint文件转换成PDF格式文件       
131         ///</summary>        
132         ///<param name="sourcePath">源文件路径</param>     
133         ///<param name="targetPath">目标文件路径</param> 
134         ///<returns>true=转换成功</returns> 
135         public static bool PPTConvertToPDF(string sourcePath, string targetPath)
136         {
137             bool result;
138             PowerPoint.PpSaveAsFileType targetFileType = PowerPoint.PpSaveAsFileType.ppSaveAsPDF;
139             object missing = Type.Missing;
140             PowerPoint.ApplicationClass application = null;
141             PowerPoint.Presentation persentation = null;
142             try
143             {
144                 application = new PowerPoint.ApplicationClass();
145                 persentation = application.Presentations.Open(sourcePath, MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse); persentation.SaveAs(targetPath, targetFileType, Microsoft.Office.Core.MsoTriState.msoTrue);
146                 result = true;
147             }
148             catch
149             {
150                 result = false;
151             }
152             finally
153             {
154                 if (persentation != null)
155                 {
156                     persentation.Close();
157                     persentation = null;
158                 }
159                 if (application != null)
160                 {
161                     application.Quit();
162                     application = null;
163                 }
164                 GC.Collect();
165                 GC.WaitForPendingFinalizers();
166                 GC.Collect();
167                 GC.WaitForPendingFinalizers();
168             }
169             return result;
170         }
171     }
原文地址:https://www.cnblogs.com/felicitytanyin/p/11981603.html