在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
程式化地轉換文件已成為許多應用程式中的一項基本功能。 尤其是在商業世界中,將 Word 文件轉換為 PDF 文件是一項常規工作。 值得慶幸的是,使用 C# 和 Microsoft Interop,您可以無縫地將 Word 文件轉換為 PDF。 本教程將討論使用C#程式化將Word轉換為PDF的過程。
在深入了解使用 C# 將 .DOCX 轉換為 PDF 的程式碼之前,確保您已經完成必要的環境設置是至關重要的。 以下是您需要的先決條件:
確保您的電腦上已安裝 Microsoft Word。 Interop 服務將使用 Word 的內建功能來處理 Word 文件和 PDF 轉換。
需要一個版本的Visual Studio來創建、編譯和運行 C# 程式。 如果你尚未擁有 Visual Studio,你可以從微軟的官方網站下載免費的社群版本。
Microsoft.Office.Interop.Word
此套件對於讓您的 C# 程式能夠與 Word 文件互動所需的功能至關重要。 它將稍後使用 NuGet 包管理器安裝,但了解其在轉換過程中的重要性是好的。
準備一個要轉換的 Word 文件或.docx
檔案。 確保您知道其在機器上的路徑,因為您需要在 C# 程式中指定它。
確保您可以讀取Word文件並將生成的PDF文件寫入所需目錄。 以管理員身份運行 Visual Studio 有時可以解決與權限相關的問題。
有了這些先決條件,您可以設置您的環境並將您的Word文件轉換為PDF文件。
打開您的 Visual Studio。
創建一個新的 C# 控制台應用程式。
前往NuGet 套件管理員 > 管理解決方案的 NuGet 套件。
搜索「Microsoft.Office.Interop.Word
」並安裝它。 此套件將允許我們的應用程式與Word進行通信並轉換Word文件。
![如何在 C# 中將 Word 轉換為 PDF:圖 1 - 打開 Visual Studio 並創建一個新的 Console App 專案。 前往 NuGet 套件管理員 > 管理解決方案的套件。 搜索 "Microsoft.Office.Interop.Word" 並安裝它。 此套件將幫助我們的控制台應用程序與Word互動,並將Word文件轉換為PDF。
要使用 C# 將 Word 文件轉換為 PDF,我們將運用 Microsoft Interop 服務的功能。 以下的代碼片段完成此任務,接下來是詳細說明。
using System;
using Word = Microsoft.Office.Interop.Word;
class Program
{
static void Main()
{
var wordApp = new Word.Application();
var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");
var outputPath = @"path_where_you_want_to_save_pdf.pdf";
wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);
wordDocument.Close();
wordApp.Quit();
Console.WriteLine("Word document converted to PDF successfully!");
}
}
using System;
using Word = Microsoft.Office.Interop.Word;
class Program
{
static void Main()
{
var wordApp = new Word.Application();
var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");
var outputPath = @"path_where_you_want_to_save_pdf.pdf";
wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);
wordDocument.Close();
wordApp.Quit();
Console.WriteLine("Word document converted to PDF successfully!");
}
}
Imports System
Imports Word = Microsoft.Office.Interop.Word
Friend Class Program
Shared Sub Main()
Dim wordApp = New Word.Application()
Dim wordDocument = wordApp.Documents.Open("path_to_your_word_file.docx")
Dim outputPath = "path_where_you_want_to_save_pdf.pdf"
wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF)
wordDocument.Close()
wordApp.Quit()
Console.WriteLine("Word document converted to PDF successfully!")
End Sub
End Class
我們的程式碼開頭包含兩個重要的命名空間。 System
命名空間提供了 C# 程式設計的基本類別,並且幾乎是所有 C# 程式中的基本要素。
真正的操作在Main
方法內開始。 我們首先使用new Word.Application()
創建一個新的 Word 應用程式實例。 這個步驟類似於啟動 MS Word,但所有事情都在背景中發生,使用者看不到。 一旦應用程式實例初始化後,我們指示它使用wordApp.Documents.Open
方法打開一個 Word 文件。 將您的 Word 文件路徑替換為 "path_to_your_word_file.docx" 至關重要。
現在,打開文件後,我們確定希望將 PDF 儲存的位置。 這在 output path
變數中指定。 重要的是要注意,路徑應調整到您希望轉換後的PDF 檔案所在的位置。
將Word 文件轉換為 PDF的魔法發生在wordDocument.ExportAsFixedFormat(...)
這行程式碼中。 Interop 服務提供內建方法,使轉換變得輕鬆無憂。 該方法需要兩個主要參數:PDF應儲存的路徑以及匯出格式,在我們的例子中,匯出格式是PDF。
在完成轉換後,關閉我們使用過的資源是一個良好的習慣。因此,wordDocument.Close()
確保我們打開的文檔已經關閉,而 wordApp.Quit()
確保我們在後台啟動的 Word 應用程式實例已被終止。
最後,我們的程式使用簡單的控制台訊息向使用者傳達結果。 Console.WriteLine()
方法提供反饋,表示轉換過程已成功執行。
因此,Microsoft.Office.Interop.Word
提供了一個合適的解決方案來處理和轉換 Word 文件。
雖然Microsoft.Office.Interop
提供了一個可行的文件轉換解決方案,但有一個更高效和強大的替代方案可以用於處理Excel:IronXL。
IronXL 簡化了在 C# 中處理 Excel 文件的過程。 它在速度和使用便利性上不僅勝過Interop,還不需要像Microsoft Office那樣的額外安裝。有興趣進一步探索嗎? 查看他們關於如何使用C#讀取Excel文件的詳細教程。
可以在 NuGet 套件管理器控制台中使用以下命令安裝 IronXL 庫:
Install-Package IronWord
using IronXL;
using System.IO;
// Import any XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Export the excel file as XLS, XLSX, XLSM, CSV, TSV, JSON, XML
workBook.SaveAs("sample.xls");
workBook.SaveAs("sample.xlsx");
workBook.SaveAs("sample.tsv");
workBook.SaveAsCsv("sample.csv");
workBook.SaveAsJson("sample.json");
workBook.SaveAsXml("sample.xml");
// Export the excel file as Html, Html string
workBook.ExportToHtml("sample.html");
string htmlString = workBook.ExportToHtmlString();
// Export the excel file as Binary, Byte array, Data set, Stream
byte [] binary = workBook.ToBinary();
byte [] byteArray = workBook.ToByteArray();
System.Data.DataSet dataSet = workBook.ToDataSet(); // Allow easy integration with DataGrids, SQL and EF
Stream stream = workBook.ToStream();
using IronXL;
using System.IO;
// Import any XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Export the excel file as XLS, XLSX, XLSM, CSV, TSV, JSON, XML
workBook.SaveAs("sample.xls");
workBook.SaveAs("sample.xlsx");
workBook.SaveAs("sample.tsv");
workBook.SaveAsCsv("sample.csv");
workBook.SaveAsJson("sample.json");
workBook.SaveAsXml("sample.xml");
// Export the excel file as Html, Html string
workBook.ExportToHtml("sample.html");
string htmlString = workBook.ExportToHtmlString();
// Export the excel file as Binary, Byte array, Data set, Stream
byte [] binary = workBook.ToBinary();
byte [] byteArray = workBook.ToByteArray();
System.Data.DataSet dataSet = workBook.ToDataSet(); // Allow easy integration with DataGrids, SQL and EF
Stream stream = workBook.ToStream();
Imports IronXL
Imports System.IO
' Import any XLSX, XLS, XLSM, XLTX, CSV and TSV
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
' Export the excel file as XLS, XLSX, XLSM, CSV, TSV, JSON, XML
workBook.SaveAs("sample.xls")
workBook.SaveAs("sample.xlsx")
workBook.SaveAs("sample.tsv")
workBook.SaveAsCsv("sample.csv")
workBook.SaveAsJson("sample.json")
workBook.SaveAsXml("sample.xml")
' Export the excel file as Html, Html string
workBook.ExportToHtml("sample.html")
Dim htmlString As String = workBook.ExportToHtmlString()
' Export the excel file as Binary, Byte array, Data set, Stream
Dim binary() As Byte = workBook.ToBinary()
Dim byteArray() As Byte = workBook.ToByteArray()
Dim dataSet As System.Data.DataSet = workBook.ToDataSet() ' Allow easy integration with DataGrids, SQL and EF
Dim stream As Stream = workBook.ToStream()
如上面的範例代碼所示,IronXL 庫幫助讀取 Excel 文件而不使用 Interop。您還可以進一步使用 IronXL 庫來加載您的工作簿並使用 SaveAs
方法將其導出為不同的格式,例如 XLS、XLSX、XLSM、CSV、TSV、JSON、XML。 它還允許直接在程式碼中匯出資料類型,如 HTML 字串、二進位檔案、位元組陣列、資料集和記憶體流。
在當今的數位時代,文件轉換,尤其是Word 文件到 PDF,已成為許多應用程式不可或缺的一部分。 這可以使用 C# 和 Microsoft Interop 提供的功能來實現。
然而,保持使用像IronXL這樣的優秀工具更新是必要的,它提供了增強的性能並簡化了流程。 如果您正在考慮嘗試使用IronXL,他們提供免費試用。 一旦您體驗到它的強大功能,授權費用從合理的$749起,使您的投資物有所值並確保您的應用程式中的文檔處理順暢。