如何在 C# 中設定列印紙張尺寸
IronPrint 的 PrintSettings 類別讓開發人員能透過 PaperSize 屬性直接控制紙張尺寸。 我們會從 PaperSize 枚舉中指派一個值 — 例如 PaperSize.A4 或 PaperSize.Letter — 並將已設定的 PrintSettings 物件傳遞給 IronPrint 的任何列印方法。 印表機隨後會使用該確切的紙張尺寸來執行這項工作。
本指南將逐步說明如何設定標準紙張尺寸、將尺寸與其他列印設定結合,以及進行非同步列印——所有內容均附有可運作的 C# 程式碼。
快速入門:設定紙張尺寸
- 透過 NuGet 安裝 IronPrint:
Install-Package IronPrint - 將
using IronPrint;加入檔案中 - 建立一個
PrintSettings物件 - 將
PaperSize設定為PaperSize枚舉中的任何值(例如PaperSize.A4) - 將設定傳遞至
Printer.Print()或Printer.PrintAsync()
最小工作流程(5 個步驟)
- 安裝 IronPrint C# 程式庫
- 建立一個 `PrintSettings` 物件
- 透過 `PaperSize` 枚舉設定 `PaperSize`
- 將設定傳遞給 `Printer.Print()`
- 執行專案以選定的紙張尺寸進行列印
如何在 C# 中設定列印紙張尺寸?
我們透過將 PaperSize 枚舉的值指派給 PrintSettings 物件上的 PaperSize 屬性,來設定紙張尺寸。 接著,我們將該物件傳遞給 IronPrint 的任何列印方法。
:path=/static-assets/print/content-code-examples/how-to/set-paper-size/set-paper-size-set-paper-size.cs
using IronPrint;
// Configure print settings with US Letter paper
PrintSettings settings = new PrintSettings();
settings.PaperSize = PaperSize.Letter;
// Send the document to the default printer
Printer.Print("invoice.pdf", settings);
Imports IronPrint
' Configure print settings with US Letter paper
Dim settings As New PrintSettings()
settings.PaperSize = PaperSize.Letter
' Send the document to the default printer
Printer.Print("invoice.pdf", settings)
我們首先實例化 PrintSettings,其初始化時會採用印表機的預設值。 接著,我們將 PaperSize 覆寫為 PaperSize.Letter,此設定對應於標準的 8.5 × 11 英吋格式。 當我們呼叫 Printer.Print 時,IronPrint 會使用該紙張尺寸將文件傳送至系統的預設印表機。
若未指定 PaperSize,IronPrint 將使用 PaperSize.PrinterDefault,此設定會依循作業系統預設印表機所設定的紙張尺寸。 這對於印表機設定因機器而異的生產環境而言,是一項至關重要的細節。
此函式庫支援哪些紙張尺寸?
PaperSize 枚舉包含十二個值,涵蓋 ISO 國際標準、常見的美國尺寸以及印表機預設值。 下表列出了所有可用的選項。
| 枚舉值 | 標準 | 尺寸 (mm) | 尺寸(英吋) |
|---|---|---|---|
PaperSize.A0 |
ISO A0 | 841 × 1189 | 33.1 × 46.8 |
PaperSize.A1 |
ISO A1 | 594 × 841 | 23.4 × 33.1 |
PaperSize.A2 |
ISO A2 | 420 × 594 | 16.5 × 23.4 |
PaperSize.A3 |
ISO A3 | 297 × 420 | 11.7 × 16.5 |
PaperSize.A4 |
ISO A4 | 210 × 297 | 8.3 × 11.7 |
PaperSize.A5 |
ISO A5 | 148 × 210 | 5.8 × 8.3 |
PaperSize.B4 |
ISO B4 | 250 × 353 | 9.8 × 13.9 |
PaperSize.B5 |
ISO B5 | 176 × 250 | 6.9 × 9.8 |
PaperSize.Letter |
美國信件 | 216 × 279 | 8.5 × 11.0 |
PaperSize.Legal |
美國法律 | 216 × 356 | 8.5 × 14.0 |
PaperSize.Executive |
美國高階主管 | 184 × 267 | 7.25 × 10.5 |
PaperSize.PrinterDefault |
印表機預設值 | 變化 | 變化 |
每個數值均直接對應於某項公認的紙張標準。 PrinterDefault 選項會指示 IronPrint 使用印表機當前的設定尺寸 —— 當您希望尊重終端使用者的印表機偏好設定,而非強制採用特定格式時,此功能相當實用。
如需完整的 API 參考,請參閱 PaperSize 類別的文件。
如何將紙張尺寸與其他列印設定結合使用?
PrintSettings 類別除了 PaperSize 之外,還提供了數個屬性。 我們可以透過單一物件設定頁面方向、DPI、邊距、複印份數及灰階模式。
:path=/static-assets/print/content-code-examples/how-to/set-paper-size/set-paper-size-combined-settings.cs
using IronPrint;
// Build a fully configured print job
PrintSettings settings = new PrintSettings
{
PaperSize = PaperSize.A4,
PaperOrientation = PaperOrientation.Landscape,
Dpi = 300,
NumberOfCopies = 3,
PaperMargins = new Margins(15, 15, 15, 15),
Grayscale = false
};
// Print a multi-page report with these settings
Printer.Print("quarterly-report.pdf", settings);
Imports IronPrint
' Build a fully configured print job
Dim settings As New PrintSettings With {
.PaperSize = PaperSize.A4,
.PaperOrientation = PaperOrientation.Landscape,
.Dpi = 300,
.NumberOfCopies = 3,
.PaperMargins = New Margins(15, 15, 15, 15),
.Grayscale = False
}
' Print a multi-page report with these settings
Printer.Print("quarterly-report.pdf", settings)
此處為求清晰起見,採用物件初始化語法。 PaperOrientation.Landscape 將 A4 紙張旋轉至其較寬的一邊。 Dpi 設定為 300 可確保圖表與細小文字的輸出清晰銳利。 PaperMargins 透過 Margins 建構函式接受四個以毫米為單位的數值 — 頂部、右側、底部、左側。 Grayscale 屬性的預設值為 false,但我們為提高可讀性而明確設定了此值。
這些特性可無衝突地協同運作。 IronPrint 會驗證設定,並將整合後的設定作為單一列印工作傳送至印表機驅動程式。 有關印表機選擇和紙匣設定等進階設定,請參閱完整的列印設定指南。
如何使用自訂紙張尺寸進行非同步列印?
對於無法阻塞主執行緒的應用情境(例如 WPF 或 WinForms 應用程式),我們會使用 Printer.PrintAsync。 此方法接受相同的 PrintSettings 物件,並傳回一個 Task。
:path=/static-assets/print/content-code-examples/how-to/set-paper-size/set-paper-size-async-print.cs
using IronPrint;
using System.Threading.Tasks;
public class DocumentPrinter
{
public async Task PrintLegalDocumentAsync(string filePath)
{
// Configure Legal paper size for contracts and legal documents
PrintSettings settings = new PrintSettings
{
PaperSize = PaperSize.Legal,
PaperOrientation = PaperOrientation.Portrait,
Dpi = 300
};
// Print without blocking the UI thread
await Printer.PrintAsync(filePath, settings);
}
}
Imports IronPrint
Imports System.Threading.Tasks
Public Class DocumentPrinter
Public Async Function PrintLegalDocumentAsync(filePath As String) As Task
' Configure Legal paper size for contracts and legal documents
Dim settings As New PrintSettings With {
.PaperSize = PaperSize.Legal,
.PaperOrientation = PaperOrientation.Portrait,
.Dpi = 300
}
' Print without blocking the UI thread
Await Printer.PrintAsync(filePath, settings)
End Function
End Class
此基於類別的範例展示了一種實際的模式,其中 DocumentPrinter 服務封裝了列印邏輯。 我們採用 PaperSize.Legal(8.5 × 14 英吋)格式,此為合約及法律文件提交的標準規格。 await 關鍵字可確保在 IronPrint 處理列印工作時,呼叫執行緒仍能保持響應。
我們可以透過按鈕點擊處理程序、背景服務,或任何支援 await 的位置來呼叫此方法。 IronPrint 的非同步方法(包括 PrintAsync 和 ShowPrintDialogAsync)接受相同的 PrintSettings 配置,因此紙張尺寸的處理行為在同步與非同步路徑中完全一致。
接下來我該怎麼做?
我們已詳述如何在 C# 中使用 IronPrint 的 PaperSize 枚舉來設定紙張尺寸,內容涵蓋從基本的單一屬性設定,到複合設定及非同步列印。 PrintSettings 類別提供了一個簡潔且強類型化的 API,可消除對紙張尺寸的推測。
若要進一步探索 IronPrint 的功能:
立即開始 30 天試用,在您的專案中測試紙張尺寸設定,或查看用於生產環境部署的授權選項。

