前提
安装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的资料请关注代码网其它相关文章!
发表评论