一、添加依赖
为wpf项目引用Microsoft.Office.Interop.Excel、Microsoft.Office.Interop.PowerPoint、Microsoft.Office.Interop.Word、Office,依赖文件已经打到源代码包里了。
二、先定义一些命名空间
- using Word = Microsoft.Office.Interop.Word;
- using Excel = Microsoft.Office.Interop.Excel;
- using PPT = Microsoft.Office.Interop.PowerPoint;
三、Word转PDF
- ///
- /// Word转PDF
- ///
- /// 待转化的Word文件
- /// 转换后的pdf文件路径
- ///
- public static bool ConverterWordToPdf(string strWordPath, string strPdfPath)
- {
- Word.Application appWord = null;
- Word.Document docWord = null;
-
- try
- {
- appWord = new Word.Application();
- docWord = appWord.Documents.Open(strWordPath);
- docWord.ExportAsFixedFormat(strPdfPath, Word.WdExportFormat.wdExportFormatPDF);
-
- return true;
- }
- catch
- {
- return false;
- }
- finally
- {
- if(docWord != null)
- {
- docWord.Close(false);
- }
- if(appWord != null)
- {
- appWord.NormalTemplate.Saved = true;
- appWord.Quit(false);
- }
- }
- }
四、Excel转PDF
- public static bool ConverterExcelToPdf(string strExcelPath, string strPdfPath)
- {
- Excel.Application appExcel = null;
- Excel.Workbook docExcel = null;
-
- try
- {
- appExcel = new Excel.Application();
- docExcel = appExcel.Workbooks.Open(strExcelPath, System.Reflection.Missing.Value, true);
- docExcel.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, strPdfPath);
-
- return true;
- }
- catch
- {
- return false;
- }
- finally
- {
- if (docExcel != null)
- {
- docExcel.Close(false);
- }
- if (appExcel != null)
- {
- appExcel.Quit();
- }
- }
- }
五、PPT转PDF
- public static bool ConverterPPTToPdf(string strPPTPath, string strPdfPath)
- {
- PPT.Application appPPT = null;
- PPT.Presentation pptPresentation = null;
-
- try
- {
- appPPT = new PPT.Application();
- pptPresentation = appPPT.Presentations.Open(strPPTPath,
- Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse);
- pptPresentation.SaveAs(strPdfPath, PPT.PpSaveAsFileType.ppSaveAsPDF);
-
- return true;
- }
- catch
- {
- return false;
- }
- finally
- {
- if (pptPresentation != null)
- {
- pptPresentation.Close();
- }
- if (appPPT != null)
- {
- appPPT.Quit();
- }
- }
- }
六、我写了一个简单的转换代码,源码下载地址如下
软件运行截图