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