跳過到頁腳內容
使用 IRONWORD

如何在 C# 中將 Word 轉換為 PDF

在許多應用程式中,以程式設計方式轉換文件已成為一項必不可少的功能。 尤其在商業領域,將 Word 文件轉換為 PDF 文件是一項常規任務。 幸運的是,借助 C# 和 Microsoft Interop,您可以無縫地將 Word 文件轉換為 PDF。 本教學將討論如何使用 C# 以程式設計方式將 Word 轉換為 PDF。

先決條件

在深入研究使用 C# 將 .DOCX 轉換為 PDF 的程式碼之前,請確保您已設定必要的環境至關重要。 以下是您需要具備的先決條件:

Microsoft Word 安裝

請確保您的電腦上已安裝 Microsoft Word。 Interop 服務將使用 Word 的內建功能來處理 Word 文件和 PDF 的轉換。

Visual Studio

若要建立、編譯和執行 C# 程序,需要安裝Visual Studio 。 如果您還沒有 Visual Studio,可以從微軟官方網站下載免費的社群版。

安裝軟體包 Microsoft.Office.Interop.Word

該軟體包對於為您的 C# 程式提供與 Word 文件互動所需的功能至關重要。 稍後會使用NuGet套件管理器進行安裝,但了解它在轉換過程中的重要性是有益的。

用於轉換的 Word 文檔

準備一個要轉換的 Word 文件或 .docx 文件。 請確保您知道它在您的電腦上的路徑,因為您需要在 C# 程式中指定它。

足夠的權限

請確保您能夠讀取 Word 文件並將生成的 PDF 文件寫入目標目錄。 以管理員身分執行 Visual Studio 有時可以解決權限相關的問題。

具備這些前提條件後,您就可以設定環境並將 Word 文件轉換為 PDF 文件。

建立環境

  1. 開啟 Visual Studio。
  2. 建立一個新的 C# 控制台應用程式。
  3. 前往NuGet套件管理器>管理解決方案的NuGet套件
  4. 搜尋"Microsoft.Office.Interop.Word"並安裝它。 該軟體包將允許我們的應用程式與 Word 進行通訊並轉換 Word 文件。

![如何在 C# 中將 Word 轉換為 PDF:圖 1 - 開啟 Visual Studio 並建立新的控制台應用程式專案。 前往NuGet套件管理器以取得解決方案。 搜尋"Microsoft.Office.Interop.Word"並安裝。 這個軟體包將幫助我們的控制台應用程式與 Word 進行交互,並轉換 Word 文件。

將 Word 文件轉換為 PDF 的範例程式碼

若要使用 C# 將 Word 文件轉換為 PDF,我們將利用 Microsoft Interop 服務的功能。 下面的程式碼片段實現了這個功能,以下將進行詳細解釋。

using System;
using Word = Microsoft.Office.Interop.Word;

class Program
{
    static void Main()
    {
        // Create an instance of Microsoft Word application
        var wordApp = new Word.Application();

        // Open the Word document
        var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");

        // Specify the path where the PDF should be saved
        var outputPath = @"path_where_you_want_to_save_pdf.pdf";

        // Convert the Word document to PDF
        wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);

        // Close the Word document and quit the Word application
        wordDocument.Close();
        wordApp.Quit();

        // Output a success message
        Console.WriteLine("Word document converted to PDF successfully!");
    }
}
using System;
using Word = Microsoft.Office.Interop.Word;

class Program
{
    static void Main()
    {
        // Create an instance of Microsoft Word application
        var wordApp = new Word.Application();

        // Open the Word document
        var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");

        // Specify the path where the PDF should be saved
        var outputPath = @"path_where_you_want_to_save_pdf.pdf";

        // Convert the Word document to PDF
        wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);

        // Close the Word document and quit the Word application
        wordDocument.Close();
        wordApp.Quit();

        // Output a success message
        Console.WriteLine("Word document converted to PDF successfully!");
    }
}
$vbLabelText   $csharpLabel

程式碼解釋

我們的程式碼開頭包含一個關鍵的命名空間別名 Word,以便輕鬆引用 Microsoft.Office.Interop.Word 命名空間。 System 命名空間提供了 C# 程式設計的基本類,幾乎是所有 C# 應用程式的必備要素。

真正的操作始於 Main 方法內部。 我們首先使用 new Word.Application() 建立 Word 應用程式的新實例。 這步驟類似於啟動 MS Word,但所有操作都在背景進行,使用者看不到。 應用程式實例初始化後,我們指示它使用 wordApp.Documents.Open 方法開啟 Word 文件。 請務必將 Word 文件的路徑替換為 "path_to_your_word_file.docx"

現在,文件已打開,我們來確定要將 PDF 文件保存到哪裡。 這是在 outputPath 變數中指定的。 需要注意的是,路徑應該調整為您希望轉換後的輸出 PDF 檔案所在的位置。

將 Word 文件轉換為 PDF 的神奇之處在於這行程式碼 wordDocument.ExportAsFixedFormat(...)。 Interop 服務提供了內建方法,可輕鬆實現轉換。 此方法接受兩個主要參數:PDF 的儲存路徑和匯出格式,在本例中為 PDF。

轉換完成後,關閉已使用的資源是良好的實踐。因此,wordDocument.Close() 確保我們開啟的文件已關閉,而 wordApp.Quit() 確保我們在背景啟動的 Word 應用程式實例已終止。

最後,我們的程式會透過簡單的控制台訊息將結果傳達給使用者。 Console.WriteLine() 方法提供回饋,表示轉換過程已成功執行。

因此,Microsoft.Office.Interop.Word 為處理和轉換 Word 文件提供了一個合適的解決方案。

使用IronPDF和IronWord將 Word 轉換為 PDF(C# 程式碼)

如果你正在建立一個涉及文件自動化的.NET應用程序,你將面臨的一個常見任務是將 Word 文件轉換為 PDF 格式。 無論您是處理 .docx 文件範本、發票、報告還是合同,將 DOCX 文件轉換為 PDF 都能確保格式一致、安全交付和跨平台相容性。

本文介紹如何使用 IronSoftware 的兩款強大工具IronPDFIronWord輕鬆地將Word 文件轉換為 PDF 文件。 您將學習它們之間的差異、何時使用每種工具以及如何在 C# 中實現它們,從而快速、可靠地生成 Word 到 PDF 文件。

為什麼要在.NET中將Word轉換為PDF?

在深入探討如何使用這些程式庫來實現此任務之前,讓我們先來看看為什麼將 Word 文件轉換為 PDF 可以提升您的工作空間和文件品質。

那麼,為什麼要將 DOCX 檔案轉換為 PDF 格式呢?

它確保了各個平台上的視覺一致性

  • 鎖定格式並防止意外編輯 它非常適合用於存檔法律或財務文件。 它使列印和共享文件變得更加容易
  • 這通常是許多業務工作流程所需的格式。

工具概述: IronPDF和IronWord

IronWord

 IronWord

IronWord是一個專為讀取和編輯 Word 文件而建立的.NET庫。 使用IronWord,您可以直接載入 .docx 文件並根據需要進行編輯,無需安裝 Microsoft Office Interop 或 Microsoft Word,然後使用IronPDF處理 DOCX 到 PDF 的轉換。

現在讓我們透過建立一個新的文件物件並在其中新增文字來看IronWord 的實際應用:

using IronWord;
using IronWord.Models;
using IronWord.Models.Abstract;

WordDocument doc = new WordDocument();

TextContent text = new TextContent("This is some example text.");
text.Style = new TextStyle()
{
    Color = Color.Red,
    TextFont = new Font()
    {
        FontFamily = "Roboto",
        FontSize = 72,
    }
};
doc.AddText(text);
doc.Save("example.docx");
using IronWord;
using IronWord.Models;
using IronWord.Models.Abstract;

WordDocument doc = new WordDocument();

TextContent text = new TextContent("This is some example text.");
text.Style = new TextStyle()
{
    Color = Color.Red,
    TextFont = new Font()
    {
        FontFamily = "Roboto",
        FontSize = 72,
    }
};
doc.AddText(text);
doc.Save("example.docx");
$vbLabelText   $csharpLabel

輸出 Word 文件

Word 輸出

IronPDF

 IronPDF

IronPDF是一個功能齊全的.NET PDF 庫,包含豐富的 PDF 生成和操作工具。 雖然其最突出的特點之一是高品質的HTML 轉 PDF功能,但它也能處理 Word 轉 PDF 的 C# 轉換任務。 對於希望產生 PDF 或編輯現有 PDF 文件的.NET開發人員來說, IronPDF可以滿足您的所有需求。

那麼IronPDF到底有多容易使用呢? 讓我們來看看下面的程式碼範例,了解一下將 Word 文件轉換為 PDF 時是如何運作的:

using IronPdf;

var renderer = new DocxToPdfRenderer();
var pdf = renderer.RenderDocxAsPdf("sample.docx");
pdf.SaveAs("example.pdf");
using IronPdf;

var renderer = new DocxToPdfRenderer();
var pdf = renderer.RenderDocxAsPdf("sample.docx");
pdf.SaveAs("example.pdf");
$vbLabelText   $csharpLabel

PDF 輸出

PDF 輸出

整合工作流程: IronWord和IronPDF

雖然IronWord不能直接匯出為 PDF,但它非常適合以程式設計方式準備 Word 文件。 以下是一個常見的流程:

Word to PDF Pipeline in C

  1. 使用IronWord載入或建立Word 文檔
  2. 編輯或填寫動態資料(例如替換令牌)
  3. 儲存 .docx 文件
  4. 使用IronPDF將文件轉換為 PDF 格式
  5. 之後,您可以使用IronPDF對新渲染的 PDF 進行任何進一步的調整,例如新增浮水印或註釋。

這種混合工作流程以最小的依賴性提供最大的靈活性,非常適合 Web 應用程式、雲端服務和桌面應用程式。

那麼實際效果如何呢?

使用IronWord建立文檔

首先,我們將使用IronWord建立一個範例 Word 文件。

using IronWord;
using IronWord.Models;
using IronWord.Models.Abstract;

WordDocument doc = new WordDocument();

TextContent title = new TextContent("Example Report.");
TextContent text = new TextContent("Report created using IronWord, you can use this to create dynamic text and tables.");
title.Style = new TextStyle()
{
    TextFont = new Font()
    {
        FontSize = 72
    },
    IsBold = true,
};

Paragraph paragraph = new Paragraph();
paragraph.AddText(title);
paragraph.AddText(text);

doc.AddParagraph(paragraph);
doc.Save("example.docx");
using IronWord;
using IronWord.Models;
using IronWord.Models.Abstract;

WordDocument doc = new WordDocument();

TextContent title = new TextContent("Example Report.");
TextContent text = new TextContent("Report created using IronWord, you can use this to create dynamic text and tables.");
title.Style = new TextStyle()
{
    TextFont = new Font()
    {
        FontSize = 72
    },
    IsBold = true,
};

Paragraph paragraph = new Paragraph();
paragraph.AddText(title);
paragraph.AddText(text);

doc.AddParagraph(paragraph);
doc.Save("example.docx");
$vbLabelText   $csharpLabel

輸出

Word 文件輸出

使用IronPDF進行 Word 到 PDF 的 C# 轉換

只需 3 行簡單的程式碼,我們就可以輕鬆地將Word 文件轉換為 PDF

using IronPdf;

var renderer = new DocxToPdfRenderer();

var pdf = renderer.RenderDocxAsPdf("example.docx");

pdf.SaveAs("output.pdf");
using IronPdf;

var renderer = new DocxToPdfRenderer();

var pdf = renderer.RenderDocxAsPdf("example.docx");

pdf.SaveAs("output.pdf");
$vbLabelText   $csharpLabel

輸出

PDF 輸出

就這樣,我們用IronWord建立了一個自訂 Word 文檔,然後使用IronPDF將其轉換為 PDF 格式,只需幾行程式碼即可完成。

即時部署:適用於任何地方

IronPDF和IronWord可在以下環境下運作:

  • ASP.NET Core和Blazor Azure 應用程式服務與 Azure 函數
  • 相容.NET Framework、 .NET 6、7、8、9 和.NET Core
  • 可輕鬆整合到 Linux、Docker 和伺服器環境中
  • 桌面(WPF/WinForms)和控制台應用程式

無需安裝Office軟體。 不支援 COM 互通。只有簡潔、現代化的.NET函式庫。

常見用例

用例 IronWord IronPDF
載入/編輯 .docx 文件 是的 No
在 Word 中取代文字/標記 是的 No
儲存 .docx 文檔 是的 No
將 HTML 轉換為 PDF Yes
產生最終 PDF 輸出 Yes
伺服器端渲染 是的 是的

專業提示:使用Razor視圖輸出類似 Word 的 PDF 文檔

即使您不使用IronWord, IronPDF直接支援Razor範本。 您可以使用Razor Pages 透過 CSS 輸出 Word 樣式的佈局,然後將其渲染為 PDF:

@model InvoiceModel

<html>
  <body>
    <h1>Invoice for @Model.CustomerName</h1>
    <p>Amount Due: @Model.TotalAmount</p>
  </body>
</html>
@model InvoiceModel

<html>
  <body>
    <h1>Invoice for @Model.CustomerName</h1>
    <p>Amount Due: @Model.TotalAmount</p>
  </body>
</html>
$vbLabelText   $csharpLabel

IronPDF可以將其渲染成精美的、可直接用於印刷的 PDF 文件。

摘要:在.NET中充分發揮 Word 轉 PDF 的強大功能

透過將IronPDFIronWord整合到您的.NET專案中,您可以獲得一個強大的、無需 Office 的.NET文件處理工作流程。 建立具有自訂樣式和表格的動態 Word 文檔,或將文檔轉換為像素級完美的 PDF 文件。 無論什麼任務,有了這些程式庫,您始終都能輕鬆使用強大的工具來處理 Word 和 PDF 任務。

這種組合非常適合產生發票、報告、合約以及任何以 Word 格式開始但需要以安全、一致的 PDF 格式結束的文件。

無論您是建立桌面軟體還是部署到 Azure, IronWord和IronPDF都能讓您完全掌控文件自動化—快速、可靠且可用於生產環境。 如果您想了解這些庫的更多實際應用,請務必查看它們的文檔,您可以在其中找到IronPDFIronWord的大量程式碼範例,以了解有關其功能和工作原理的更多資訊。

立即開始

透過NuGet套件管理器安裝這兩個函式庫,即可快速在 Visual Studio 專案中實現它們。 想先試用再購買嗎? 立即下載IronPDFIronWord的免費試用版,即可開始建立功能強大的文件。

常見問題解答

如何使用 C# 將 Word 文件轉換為 PDF?

您可以使用 Microsoft.Office.Interop.Word 套件在 C# 中將 Word 文件轉換為 PDF。這需要創建一個 Word 應用程式實例、載入文件,並使用 ExportAsFixedFormat 方法將其保存為 PDF。

ExportAsFixedFormat 方法在 Word 到 PDF 轉換中的作用是什麼?

Microsoft.Office.Interop.Word 中的 ExportAsFixedFormat 方法用於將 Word 文件導出為 PDF 文件,提供適合分享和列印的固定格式。

將 Word 文件轉換為 PDF 在 C# 中需要哪些前置條件?

在 C# 中將 Word 文件轉換為 PDF,您需要安裝 Microsoft Word、Visual Studio 和可通過 NuGet 套件管理器獲得的 Microsoft.Office.Interop.Word 套件。

為什麼在轉換後關閉 Word 應用程式很重要?

轉換後關閉 Word 應用程式對於釋放系統資源並避免記憶體洩漏至關重要。這確保應用程式不會在背景中繼續開著,消耗不必要的資源。

處理 Excel 文件比 Microsoft Interop 更有效率的替代方案是什麼?

IronXL 在 C# 中是一個更有效的處理 Excel 文件的選擇。它不需要安裝 Microsoft Office 並提供更快的性能以及廣泛的支援檔案格式。

如何在我的 C# 應用程式中安裝 IronXL 庫?

要在您的 C# 應用程式中安裝 IronXL,請使用 NuGet 套件管理器控制台並執行命令 Install-Package IronXL.Excel

IronXL 在處理 Excel 文件時可以處理哪些文件格式?

IronXL 可以轉換和處理多種格式的 Excel 文件,包括 XLS、XLSX、XLSM、CSV、TSV、JSON、XML、HTML,以及二進制和字節數組。

使用 IronXL 相比 Microsoft Interop 服務有何優勢?

IronXL 提供的優勢包括無需安裝 Microsoft Office、處理速度更快、使用便捷,並且支持的文件格式範圍更廣,相較於 Microsoft Interop 服務。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担產品测测试,產品開發和研究的责任時,Jordi 為持续的產品改進增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我