跳至頁尾內容
USING IRONWORD

C# 開啟 Word 文件

在許多應用程式中,程式化地轉換文件已經成為一個基本功能。 特別是在商業領域,將Word文件轉換為PDF檔案是一項例行任務。 幸運的是,使用C#和Microsoft Interop,您可以無縫地將Word文件轉換為PDF。 本教程將討論使用C#程式化地將Word轉換為PDF的過程。

先決條件

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

Microsoft Word 安裝

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

Visual Studio

需要一個Visual Studio版本來建立、編譯和運行C#程式。 如果您尚未擁有Visual Studio,您可以從Microsoft的官方網站下載免費的社區版本。

安裝套件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!");
    }
}
Imports System
Imports Word = Microsoft.Office.Interop.Word

Friend Class Program
	Shared Sub Main()
		' Create an instance of Microsoft Word application
		Dim wordApp = New Word.Application()

		' Open the Word document
		Dim wordDocument = wordApp.Documents.Open("path_to_your_word_file.docx")

		' Specify the path where the PDF should be saved
		Dim 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!")
	End Sub
End Class
$vbLabelText   $csharpLabel

程式碼說明

我們程式碼的開始包括了重要的命名空間別名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。

轉換之後,關閉我們使用的資源是良好實踐。因此,wordApp.Quit()確保我們在後台啟動的Word應用程式實例已終止。

最後,我們的程式通過簡單的控制台資訊將結果告知使用者。 方法Console.WriteLine()提供反饋,表明轉換過程已成功執行。

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

使用IronPDF和IronWord的Word轉PDF C# 方法

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

本文說明如何輕鬆地使用Iron Software的兩個強大工具:IronPDFIronWord來將Word轉換為PDF。 您將學習它們之間的區別、何時使用每個工具以及如何使用C#快速、可靠地實現Word到PDF的生成。

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

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

那為什麼應該將DOCX文件轉換為PDF格式?

  • 確保在各種平台上的視覺一致性
  • 鎖定格式並防止意外編輯
  • 這是存檔法律或財務文件的理想選擇
  • 使得更容易列印和分享您的文件
  • 經常是許多商業工作流程所需的格式

工具概覽:IronPDF和IronWord

IronWord

IronWord

IronWord是一個.NET程式庫,專門為讀取和編輯Word文件而構建。 使用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");
Imports IronWord
Imports IronWord.Models
Imports IronWord.Models.Abstract

Private doc As New WordDocument()

Private text As New TextContent("This is some example text.")
text.Style = New TextStyle() With {
	.Color = Color.Red,
	.TextFont = New Font() With {
		.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");
Imports IronPdf

Private renderer = New DocxToPdfRenderer()
Private 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進行進一步調整,例如新增水印或註釋

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

那麼這在實際應用中如何看起來呢?

使用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");
Imports IronWord
Imports IronWord.Models
Imports IronWord.Models.Abstract

Private doc As New WordDocument()

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

Dim paragraph As 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");
Imports IronPdf

Private renderer = New DocxToPdfRenderer()

Private pdf = renderer.RenderDocxAsPdf("example.docx")

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

輸出

PDF輸出

就這樣,我們能夠使用IronWord建立一個自訂的Word文件,然後使用IronPDF將其轉換為PDF格式,只需幾行程式碼。

準備部署:無所不在

IronPDF和IronWord均適用於:

  • ASP.NET Core 和 Blazor
  • Azure應用服務和Azure Functions
  • 相容於.NET框架,.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>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'@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的全部威力

透過在您的.NET專案中納入IronPDFIronWord,您將獲得一個強大的、無需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文件,提供固定格式,適合分享和列印。

在C#中將Word文件轉換為PDF的前提條件是什麼?

要在C#中將Word文件轉換為PDF,您需要安裝Microsoft Word、Visual Studio,以及透過NuGet包管理器獲取的Microsoft.Office.Interop.Word包。

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

轉換後關閉Word應用程式對於釋放系統資源和避免記憶體洩漏至關重要。這確保應用程式不會在後台保持開啟而消耗不必要的資源。

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

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服務支持更多的文件格式。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

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