使用IRONWORD

C# 列印 Word 教程:逐步指南

發佈 2023年10月30日
分享:

歡迎來到本教學,我們將探討如何在 C# 控制台應用程式中使用 Microsoft Interop 列印 Word 文件。 這份適合初學者的指南將逐步引導您通過程式設計列印 Microsoft Word 文件。

前置條件

在進入編碼之前,首先需要設置幾件事:

Microsoft Word 安裝:確保您的系統已安裝 Microsoft Word。 如果沒有,請前往您電腦的官方 Microsoft 網站或應用程式商店安裝它。

Visual Studio 設置:您應該安裝 Visual Studio 並具備創建控制台應用程式的能力。 如果您是初學者,請考慮下載Visual Studio 社群版,這是免費的,並且足以滿足我們的需求。

Word 文件:在您的機器上準備一個樣本 Word 文件以進行測試。 這將是我們將寄送到印表機的文件。

設定環境

建立新的控制台應用程式

  1. 打開 Visual Studio。

  2. 點選建立新專案。

  3. 搜尋「Console App」,然後選擇適當的 C# 範本。

  4. 命名您的專案(InteropPrintConsoleTutorial)並選擇合適的位置。

添加互操作參考

使用 Interop 需要引用 Microsoft Office Interop 庫。 以下是添加方式:

  1. 在 Visual Studio 中,右鍵點擊方案總管中的 Console 專案。

  2. 導航到新增 > 參考。

  3. 在「參考管理員」視窗中,前往「COM」標籤。

  4. 在搜索栏中輸入「Microsoft Word」以篩選列表。

  5. 從結果中,選擇 Microsoft Word xx.x Object Library(其中 xx.x 代表版本號碼).

  6. 單擊確定按鈕以添加參考。

    您也可以使用 NuGet 套件管理器進行安裝。

    您也可以使用 NuGet 套件管理器安裝 `Microsoft.Office.Interop.Word` 庫。

驗證應用程式設定

確保您的應用程式目標框架與Interop庫相容。 您可以在方案總管中右鍵點擊您的專案,選擇屬性,然後在應用程式選項卡下查看目標框架來進行檢查。 如果您在使用 Interop 庫的版本時遇到問題,請考慮下載必要的套件或程序集,或調整目標框架版本。

環境設置完成後,您現在可以進行編碼過程。

瞭解文件物件

文件物件是處理 Word 文件時 Interop 服務的核心。 此對象表示一個 Microsoft Word 文件並提供其所有功能。

常見的任務是打開文件:

object oMissing = Type.Missing;
object fileName = @"C:\path_to_document\document.docx";
Word._Document wordDoc = wordApp.Documents.Open(ref fileName, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
object oMissing = Type.Missing;
object fileName = @"C:\path_to_document\document.docx";
Word._Document wordDoc = wordApp.Documents.Open(ref fileName, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
Dim oMissing As Object = Type.Missing
Dim fileName As Object = "C:\path_to_document\document.docx"
Dim wordDoc As Word._Document = wordApp.Documents.Open(fileName, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing)
VB   C#

用 ref oMissing 传递的多个参数看起來可能令人卻步,但這對於 Open 方法來說是必需的,因為該方法需要多個參數,其中大多數是可選的。

實現列印功能

設定好環境並了解文件對象後,是時候深入探討列印 Word 文件的核心功能了。

Word 文件的基本列印

要列印文件,您可以使用以下方法:

private void ButtonPrint_Click(object sender, EventArgs e)
{
    wordDoc.PrintOut();
}
private void ButtonPrint_Click(object sender, EventArgs e)
{
    wordDoc.PrintOut();
}
Private Sub ButtonPrint_Click(ByVal sender As Object, ByVal e As EventArgs)
	wordDoc.PrintOut()
End Sub
VB   C#

此方法使用預設設定將文件傳送至預設印表機。

3.2 打印具有自定義的 Word 文件

如果您想引入列印對話框、自訂列印機設定,甚至列印多頁,您會需要更詳細的方法:

private void ButtonPrintWithSettings_Click(object sender, EventArgs e)
{
    object copies = "1";
    object pages = "1-3"; // To print multiple pages, e.g., 1 to 3.

    wordDoc.PrintOut(Copies: ref copies, Pages: ref pages);
}
private void ButtonPrintWithSettings_Click(object sender, EventArgs e)
{
    object copies = "1";
    object pages = "1-3"; // To print multiple pages, e.g., 1 to 3.

    wordDoc.PrintOut(Copies: ref copies, Pages: ref pages);
}
Private Sub ButtonPrintWithSettings_Click(ByVal sender As Object, ByVal e As EventArgs)
	Dim copies As Object = "1"
	Dim pages As Object = "1-3" ' To print multiple pages, e.g., 1 to 3.

	wordDoc.PrintOut(Copies:= copies, Pages:= pages)
End Sub
VB   C#

在上述源代碼中,我們指定了頁面範圍和副本數量,但潛在的自定義選項是巨大的。

自訂列印設定

能夠修改列印設置是程式化控制的獨特之處。 無論您想要調整印表機設定、指定特定印表機,或是靜默列印文件,都可以透過 Interop 輕鬆實現。

靜默列印

靜默列印就是將文件發送到打印機而不需要任何用戶交互:

object background = false;
wordDoc.PrintOut(Background: ref background);
object background = false;
wordDoc.PrintOut(Background: ref background);
Dim background As Object = False
wordDoc.PrintOut(Background:= background)
VB   C#

指定打印機

要在非預設的特定打印機上打印文件:

wordApp.ActivePrinter = "Printer Name";
wordDoc.PrintOut();
wordApp.ActivePrinter = "Printer Name";
wordDoc.PrintOut();
wordApp.ActivePrinter = "Printer Name"
wordDoc.PrintOut()
VB   C#

進階印表機設定

除了僅指定打印機外,有時還需要調整打印機設置:

PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
    wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName;
    wordDoc.PrintOut();
}
PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
    wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName;
    wordDoc.PrintOut();
}
Dim printDialog As New PrintDialog()
If printDialog.ShowDialog() = DialogResult.OK Then
	wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName
	wordDoc.PrintOut()
End If
VB   C#

這樣,用戶可以手動調整設定,如頁面方向、雙面列印等。

介紹 IronWord

雖然 Microsoft Interop 提供了管理 Word 文件的功能,但對於嚴肅的商業用途來說,它並不像應有的那樣穩健和高效。 輸入IronWord—一個比 Interop 更出色的 Word DOCX 文件處理替代方案。 IronWord 允許在 C# 中無縫讀取、寫入和操作 Excel 文件。 進一步了解如何開始使用IronWord.

IronXL for .NET:C# Excel 庫

結論

在本教程中,我們深入探討了在 C# 控制台應用程序中利用 Microsoft Interop 程式化打印 Word 文件的步驟。 我們已經了解如何顯示列印對話框、設置自訂列印設定,並控制各種列印方面的內容,例如選擇指定的印表機或定義頁面範圍。 雖然 Interop 提供了基礎功能,但值得注意的是,有像IronWord.

< 上一頁
C# 打開Word文件

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 7,878 查看許可證 >