如何在 C# 中設定列印份數

This article was translated from English: Does it need improvement?
Translated
View the article in English

列印多份文件是常見的需求——例如需要正本與副本的發票、批次列印的運送標籤,或是分發至多個部門的報告。 與其在迴圈內呼叫 Print() 並為每份副本建立獨立的列印工作,正確的做法是僅需設定一次副本數量,讓印表機驅動程式在單一工作內處理複製作業。

IronPrint 的 PrintSettings.NumberOfCopies 屬性接受一個整數參數,並能透過單一操作將指定份數的副本傳送至印表機。 以下內容涵蓋安裝、基本用法、非同步工作流程以及綜合設定。

快速入門:設定副本數量

  1. 透過 NuGet 安裝 IronPrint:Install-Package IronPrint
  2. using IronPrint; 加入檔案中
  3. 建立一個 PrintSettings 物件
  4. NumberOfCopies 設定為所需的計數
  5. 將設定連同檔案路徑傳遞給 Printer.Print()
  1. 使用NuGet套件管理器安裝https://www.nuget.org/packages/IronPrint

    PM > Install-Package IronPrint
  2. 複製並運行這段程式碼。

    using IronPrint;
    
    // Print 3 copies of a PDF in one print job
    PrintSettings settings = new PrintSettings();
    settings.NumberOfCopies = 3;
    Printer.Print("invoice.pdf", settings);
  3. 部署到您的生產環境進行測試

    今天就在您的專案中開始使用免費試用IronPrint

    arrow pointer

如何設定靜音列印的副本數量?

靜默列印會將文件直接傳送至印表機,而不會顯示對話方塊。 我們透過 PrintSettings.NumberOfCopies 設定副本數量,並將設定傳遞給 Printer.Print()

:path=/static-assets/print/content-code-examples/how-to/set-number-of-copies/set-number-of-copies-silent-copies.cs
using IronPrint;

// Print 5 copies silently to the default printer
PrintSettings settings = new PrintSettings
{
    NumberOfCopies = 5
};

Printer.Print("shipping-label.pdf", settings);
Imports IronPrint

' Print 5 copies silently to the default printer
Dim settings As New PrintSettings With {
    .NumberOfCopies = 5
}

Printer.Print("shipping-label.pdf", settings)
$vbLabelText   $csharpLabel

印表機驅動程式在硬體層級接收複印指令,這比將五個獨立工作排入佇列更快且更可靠。 這在共用網路印表機上尤為重要,因為不同的列印工作可能會與其他使用者的文件交錯處理。

若未明確設定,NumberOfCopies 將預設為 1。 接受任何正整數 — 將其設定為 0 或負值並無實際效果,驅動程式將回退至單一副本。

如何將"副本數"與其他列印設定結合使用?

NumberOfCopiesPrintSettings 上的其中一個屬性。 我們可以將紙張邊距、紙張尺寸、方向、DPI、灰階模式以及印表機選項整合到單一的設定物件中:

:path=/static-assets/print/content-code-examples/how-to/set-number-of-copies/set-number-of-copies-combined-settings.cs
using IronPrint;

// Full configuration: 3 copies of a landscape A4 report at 300 DPI
PrintSettings settings = new PrintSettings
{
    NumberOfCopies = 3,
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Landscape,
    Dpi = 300,
    PaperMargins = new Margins(15),
    Grayscale = false,
    PrinterName = "HP LaserJet Pro MFP M428"
};

Printer.Print("Q4-report.pdf", settings);
Imports IronPrint

' Full configuration: 3 copies of a landscape A4 report at 300 DPI
Dim settings As New PrintSettings With {
    .NumberOfCopies = 3,
    .PaperSize = PaperSize.A4,
    .PaperOrientation = PaperOrientation.Landscape,
    .Dpi = 300,
    .PaperMargins = New Margins(15),
    .Grayscale = False,
    .PrinterName = "HP LaserJet Pro MFP M428"
}

Printer.Print("Q4-report.pdf", settings)
$vbLabelText   $csharpLabel

若採用非阻塞式工作流程,請將 PrintSettings 替換為 Printer.PrintAsync()

內容複製次數是否有平台限制?

在某些平台上,印表機驅動程式可能無法精確重現 NumberOfCopies 中指定的數值。 IronPrint 文件說明指出,平台特定的限制可能導致該值被忽略,從而僅產生一份副本。 這是驅動程式層級的限制,並非 IronPrint 的限制。

在 Windows 桌面應用程式中(這是大多數列印工作流程的主要目標),NumberOfCopies 無論是本地印表機還是網路印表機,都能可靠地被支援。 若遇到某印表機始終忽略此設定,請透過 Windows 印表機屬性面板確認其驅動程式是否支援排序式多份列印工作。

接下來我該怎麼做?

我們已說明如何使用 PrintSettings.NumberOfCopies 設定列印份數,並示範了靜默列印與非同步列印,結合了份數設定與其他參數,同時也列出了各平台的注意事項。

如需進一步閱讀,請參閱以下資源:

立即取得免費試用授權,在實際環境中測試所有功能;或於準備部署時查看授權選項

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 38,930 | 版本: 2026.4 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronPrint
執行範例 觀看您的文件打到印表機上。