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 }