C#利用ms office实现office转pdf的示例代码
作者:假装我不帅
这篇文章主要介绍了C#利用ms office实现office转pdf的详细方法,文中通过代码示例和图文讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
前提
安装office 2019
安装vs 2022
新建项目
引入4个com包
编写代码
代码结构
代码如下
using Microsoft.Office.Interop.Excel; namespace UseMsOffice { internal class Program { static void Main(string[] args) { WordToPdf(); ExcelToPdf(); PPTToPdf(); } static void WordToPdf() { // Word应用程序对象 var wordApp = new Microsoft.Office.Interop.Word.Application(); Microsoft.Office.Interop.Word.Document? doc = null; string root = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase ?? ""; try { // 设置为不可见模式 wordApp.Visible = false; var docPath = Path.Combine(root, "Document", "office.docx"); // 打开一个现有的Word文档 doc = wordApp.Documents.Open(docPath); // 将文档另存为PDF string pdfPath = Path.Combine(root, $"{DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss")}_office.pdf"); doc.ExportAsFixedFormat(pdfPath, Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF); // 关闭文档和Word应用 doc.Close(); wordApp.Quit(); Console.WriteLine("文档已成功转换为PDF格式。"); } catch (Exception ex) { Console.WriteLine("发生错误:" + ex.Message); } finally { // 释放COM对象 System.Runtime.InteropServices.Marshal.ReleaseComObject(doc); System.Runtime.InteropServices.Marshal.ReleaseComObject(wordApp); doc = null; wordApp = null; } } static void ExcelToPdf() { // Excel应用程序对象 var excelApp = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook workBook = null; string root = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase ?? ""; try { // 设置为不可见模式 excelApp.Visible = false; var docPath = Path.Combine(root, "Document", "office.xlsx"); // 打开一个现有的Word文档 workBook = excelApp.Workbooks.Open(docPath); // 将文档另存为PDF string pdfPath = Path.Combine(root, $"{DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss")}_office.pdf"); workBook.ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, pdfPath); // 关闭文档和Word应用 workBook.Close(); excelApp.Quit(); Console.WriteLine("文档已成功转换为PDF格式。"); } catch (Exception ex) { Console.WriteLine("发生错误:" + ex.Message); } finally { // 释放COM对象 System.Runtime.InteropServices.Marshal.ReleaseComObject(workBook); System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp); workBook = null; excelApp = null; } } static void PPTToPdf() { // Excel应用程序对象 var pptApp = new Microsoft.Office.Interop.PowerPoint.Application(); Microsoft.Office.Interop.PowerPoint.Presentation presentation = null; string root = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase ?? ""; try { // 设置为不可见模式 pptApp.Visible = Microsoft.Office.Core.MsoTriState.msoFalse; var docPath = Path.Combine(root, "Document", "office.pptx"); // 打开一个现有的Word文档 presentation = pptApp.Presentations.Open(docPath); // 将文档另存为PDF string pdfPath = Path.Combine(root, $"{DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss")}_office.pdf"); presentation.ExportAsFixedFormat(pdfPath,Microsoft.Office.Interop.PowerPoint.PpFixedFormatType.ppFixedFormatTypePDF); // 关闭文档和Word应用 presentation.Close(); pptApp.Quit(); Console.WriteLine("文档已成功转换为PDF格式。"); } catch (Exception ex) { Console.WriteLine("发生错误:" + ex.Message); } finally { // 释放COM对象 System.Runtime.InteropServices.Marshal.ReleaseComObject(presentation); System.Runtime.InteropServices.Marshal.ReleaseComObject(pptApp); presentation = null; pptApp = null; } } } }
测试
以上就是C#利用ms office实现office转pdf的示例代码的详细内容,更多关于C# ms office实现office转pdf的资料请关注脚本之家其它相关文章!