一、添加依赖
为wpf项目引用Microsoft.Office.Interop.Excel、Microsoft.Office.Interop.PowerPoint、Microsoft.Office.Interop.Word、Office,依赖文件已经打到源代码包里了。
二、先定义一些命名空间
cs
using Word = Microsoft.Office.Interop.Word;
using Excel = Microsoft.Office.Interop.Excel;
using PPT = Microsoft.Office.Interop.PowerPoint;
三、Word转PDF
cs
/// <summary>
/// Word转PDF
/// </summary>
/// <param name="strWordPath">待转化的Word文件</param>
/// <param name="strPdfPath">转换后的pdf文件路径</param>
/// <returns></returns>
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
cs
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
cs
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();
}
}
}
六、我写了一个简单的转换代码,源码下载地址如下
软件运行截图