C#利用ms office實現(xiàn)office轉(zhuǎn)pdf的示例代碼
更新時間:2024年09月03日 11:17:00 作者:假裝我不帥
這篇文章主要介紹了C#利用ms office實現(xiàn)office轉(zhuǎn)pdf的詳細方法,文中通過代碼示例和圖文講解的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
前提
安裝office 2019
安裝vs 2022
新建項目
引入4個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"); // 打開一個現(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ā)生錯誤:" + ex.Message); } finally { // 釋放COM對象 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"); // 打開一個現(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ā)生錯誤:" + ex.Message); } finally { // 釋放COM對象 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"); // 打開一個現(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ā)生錯誤:" + ex.Message); } finally { // 釋放COM對象 System.Runtime.InteropServices.Marshal.ReleaseComObject(presentation); System.Runtime.InteropServices.Marshal.ReleaseComObject(pptApp); presentation = null; pptApp = null; } } } }
測試
以上就是C#利用ms office實現(xiàn)office轉(zhuǎn)pdf的示例代碼的詳細內(nèi)容,更多關(guān)于C# ms office實現(xiàn)office轉(zhuǎn)pdf的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C#實現(xiàn)ComboBox控件顯示出多個數(shù)據(jù)源屬性的方法
這篇文章主要介紹了C#實現(xiàn)ComboBox控件顯示出多個數(shù)據(jù)源屬性的方法,實例分析了ComboBox控件的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09macOS系統(tǒng)下Vscode的python配置教程
這篇文章主要介紹了macOS系統(tǒng)下Vscode的python配置教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04C#實現(xiàn)Winform鼠標(biāo)拖動窗口大小時設(shè)定窗口最小尺寸的方法
這篇文章主要介紹了C#實現(xiàn)Winform鼠標(biāo)拖動窗口大小時設(shè)定窗口最小尺寸的方法,涉及WinForm改變窗口大小時動態(tài)判斷當(dāng)前窗口尺寸的相關(guān)技巧,非常簡單實用,需要的朋友可以參考下2015-11-11