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#教程
下一篇:C#查看/写入日志到Windows事件查看器的操作方法
本文标题:C#利用ms office实现office转pdf的示例代码
本文地址:https://www.fushidao.cc/ruanjianbiancheng/1282.html
您可能感兴趣的文章
- 02-01C语言教程下载,如何找到最适合初学者的高质量资源?
- 01-31“为什么新手学C语言总遇到瓶颈?这些技巧让你快速入门,告别‘学不会’的困境!”
- 09-13js基础代码大全
- 09-13python菜鸟教程
- 09-13c#菜鸟编程
- 11-29C# 中的委托与事件机制详解
- 11-29C#中基数排序算法的原理及实现
- 11-29C#中计数排序算法的原理及实现
- 11-29C#实现线性搜索算法
- 11-29C#实现希尔排序算法的实践
阅读排行
推荐教程
- 11-29C#自定义控件指示灯效果
- 11-29C#中计数排序算法的原理及实现
- 11-29C#解决Excel边框样式无法复制及格式刷功能
- 11-29C#实现线性搜索算法
- 11-29C#删除Word文档中的段落的方法示例
- 01-31“为什么新手学C语言总遇到瓶颈?这些技巧让你快速入门,告别‘学不会’的困境!”
- 09-13js基础代码大全
- 11-29C# System.Linq提供类似SQL语法的高效查询操作
- 11-29C#中基数排序算法的原理及实现
- 11-29C# WPF中实现图表生成的五种方式




