C#利用ms office實(shí)現(xiàn)office轉(zhuǎn)pdf的示例代碼
前提
安裝office 2019
安裝vs 2022
新建項(xiàng)目
引入4個(gè)com包


編寫代碼
代碼結(jié)構(gòu)

代碼如下
using Microsoft.Office.Interop.Excel;
namespace UseMsOffice
{
internal class Program
{
static void Main(string[] args)
{
WordToPdf();
ExcelToPdf();
PPTToPdf();
}
static void WordToPdf()
{
// Word應(yīng)用程序?qū)ο?
var wordApp = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document? doc = null;
string root = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase ?? "";
try
{
// 設(shè)置為不可見模式
wordApp.Visible = false;
var docPath = Path.Combine(root, "Document", "office.docx");
// 打開一個(gè)現(xiàn)有的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);
// 關(guān)閉文檔和Word應(yīng)用
doc.Close();
wordApp.Quit();
Console.WriteLine("文檔已成功轉(zhuǎn)換為PDF格式。");
}
catch (Exception ex)
{
Console.WriteLine("發(fā)生錯(cuò)誤:" + ex.Message);
}
finally
{
// 釋放COM對(duì)象
System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
System.Runtime.InteropServices.Marshal.ReleaseComObject(wordApp);
doc = null;
wordApp = null;
}
}
static void ExcelToPdf()
{
// Excel應(yīng)用程序?qū)ο?
var excelApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook workBook = null;
string root = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase ?? "";
try
{
// 設(shè)置為不可見模式
excelApp.Visible = false;
var docPath = Path.Combine(root, "Document", "office.xlsx");
// 打開一個(gè)現(xiàn)有的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);
// 關(guān)閉文檔和Word應(yīng)用
workBook.Close();
excelApp.Quit();
Console.WriteLine("文檔已成功轉(zhuǎn)換為PDF格式。");
}
catch (Exception ex)
{
Console.WriteLine("發(fā)生錯(cuò)誤:" + ex.Message);
}
finally
{
// 釋放COM對(duì)象
System.Runtime.InteropServices.Marshal.ReleaseComObject(workBook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
workBook = null;
excelApp = null;
}
}
static void PPTToPdf()
{
// Excel應(yīng)用程序?qū)ο?
var pptApp = new Microsoft.Office.Interop.PowerPoint.Application();
Microsoft.Office.Interop.PowerPoint.Presentation presentation = null;
string root = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase ?? "";
try
{
// 設(shè)置為不可見模式
pptApp.Visible = Microsoft.Office.Core.MsoTriState.msoFalse;
var docPath = Path.Combine(root, "Document", "office.pptx");
// 打開一個(gè)現(xiàn)有的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);
// 關(guān)閉文檔和Word應(yīng)用
presentation.Close();
pptApp.Quit();
Console.WriteLine("文檔已成功轉(zhuǎn)換為PDF格式。");
}
catch (Exception ex)
{
Console.WriteLine("發(fā)生錯(cuò)誤:" + ex.Message);
}
finally
{
// 釋放COM對(duì)象
System.Runtime.InteropServices.Marshal.ReleaseComObject(presentation);
System.Runtime.InteropServices.Marshal.ReleaseComObject(pptApp);
presentation = null;
pptApp = null;
}
}
}
}
測(cè)試

以上就是C#利用ms office實(shí)現(xiàn)office轉(zhuǎn)pdf的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于C# ms office實(shí)現(xiàn)office轉(zhuǎn)pdf的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C#實(shí)現(xiàn)ComboBox控件顯示出多個(gè)數(shù)據(jù)源屬性的方法
這篇文章主要介紹了C#實(shí)現(xiàn)ComboBox控件顯示出多個(gè)數(shù)據(jù)源屬性的方法,實(shí)例分析了ComboBox控件的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09
macOS系統(tǒng)下Vscode的python配置教程
這篇文章主要介紹了macOS系統(tǒng)下Vscode的python配置教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
C#實(shí)現(xiàn)Winform鼠標(biāo)拖動(dòng)窗口大小時(shí)設(shè)定窗口最小尺寸的方法
這篇文章主要介紹了C#實(shí)現(xiàn)Winform鼠標(biāo)拖動(dòng)窗口大小時(shí)設(shè)定窗口最小尺寸的方法,涉及WinForm改變窗口大小時(shí)動(dòng)態(tài)判斷當(dāng)前窗口尺寸的相關(guān)技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-11-11
詳解c# 強(qiáng)制轉(zhuǎn)換和類型轉(zhuǎn)換
這篇文章主要介紹了c# 強(qiáng)制轉(zhuǎn)換和類型轉(zhuǎn)換的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下2020-10-10
C#實(shí)現(xiàn)winform窗口抖動(dòng)效果的示例代碼
在WinForms應(yīng)用程序中,實(shí)現(xiàn)窗口抖動(dòng)效果可以為用戶界面增添一些趣味性和互動(dòng)性,想象一下,當(dāng)你點(diǎn)擊一個(gè)按鈕時(shí),窗口會(huì)輕微地“顫抖”幾下,就像它在對(duì)你表示不滿或提醒你注意某些事情,這個(gè)效果可以通過(guò)定時(shí)改變窗口的位置來(lái)實(shí)現(xiàn),需要的朋友可以參考下2024-12-12

