如何在C#中設置列印紙張大小

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

IronPrint 的 PrintSettings 類別讓開發者可以透過 PaperSize 屬性直接控制紙張大小。 我們從 PaperSize 列舉中指派一個值,例如 PaperSize.A4PaperSize.Letter,然後將設置好的 PrintSettings 物件傳遞給 IronPrint 的任一列印方法。 然後,列印機會使用該確定的紙張大小進行工作。

這個指南介紹了如何設置標準紙張大小,將大小和其他列印設置結合,異步列印——全部都提供可執行的 C# 程式碼。

快速入門:設置紙張大小

  1. 通過 NuGet 安裝 IronPrint:Install-Package IronPrint
  2. using IronPrint; 新增到文件中
  3. 建立一個 PrintSettings 物件
  4. PaperSize 設置為 PaperSize 列舉中的任意值(例如,PaperSize.A4
  5. 將設置傳遞給 Printer.Print()Printer.PrintAsync()
  1. 使用NuGet套件管理器安裝https://www.nuget.org/packages/IronPrint

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

    using IronPrint;
    
    // Print a PDF on A4 paper
    Printer.Print("report.pdf", new PrintSettings
    {
        PaperSize = PaperSize.A4
    });
  3. 部署以在您的實時環境中測試

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

    arrow pointer

如何在 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;

// Print 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

' Print to the default printer
Printer.Print("invoice.pdf", settings)
$vbLabelText   $csharpLabel

我們首先實例化 PrintSettings,它會以列印機的預設值初始化。 接著,我們用 PaperSize.Letter 覆蓋 PaperSize,該值對應於標準的8.5×11英寸格式。 當我們呼叫 Printer.Print 時,IronPrint 使用該紙張大小將文件發送到系統的預設列印機。

如果沒有指定 PaperSize,IronPrint 使用 PaperSize.PrinterDefault,這將推遲到操作系統設置的預設列印機所使用的紙張大小。 這對於在生產環境中,各台機器的列印機配置各異的情況下是很重要的細節。

程式庫支持哪種紙張大小?

PaperSize 列舉包含了涵蓋ISO國際標準、常見美國尺寸以及列印機預設值的十二個值。 下表列出了所有可用的選項。

列舉值 標準 尺寸(毫米) 尺寸(英寸)
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;

// Configure full print settings
PrintSettings settings = new PrintSettings
{
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Landscape,
    Dpi = 300,
    NumberOfCopies = 3,
    PaperMargins = new Margins(15, 15, 15, 15),
    Grayscale = false
};

// Print the quarterly report
Printer.Print("quarterly-report.pdf", settings);
Imports IronPrint

' Configure full print settings
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 the quarterly report
Printer.Print("quarterly-report.pdf", settings)
$vbLabelText   $csharpLabel

為了清楚起見,我們在此使用物件初始化語法。 Orientation 將 A4 紙張旋轉至其寬軸。 300 的 DPI 確保對於圖表和細文字的清晰輸出。 Margins 接受通過 Margins 構造函式的四個值(以毫米為單位)——上、右、下、左。 雖然 CopyCount 屬性預設為 1,但我們明確地設置它來提高可讀性。

這些屬性可以無衝突地一起運作。 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
        PrintSettings settings = new PrintSettings
        {
            PaperSize = PaperSize.Legal,
            PaperOrientation = PaperOrientation.Portrait,
            Dpi = 300
        };

        // Print asynchronously
        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
        Dim settings As New PrintSettings With {
            .PaperSize = PaperSize.Legal,
            .PaperOrientation = PaperOrientation.Portrait,
            .Dpi = 300
        }

        ' Print asynchronously
        Await Printer.PrintAsync(filePath, settings)
    End Function
End Class
$vbLabelText   $csharpLabel

此基於類別的範例展示了一種現實模式,其中 DocumentPrinter 服務包裹列印邏輯。 我們設置 PaperSize.Legal (8.5 × 14 英寸),這是合同和法律文件的標準格式。 await 關鍵字確保在 IronPrint 處理列印工作的同時,調用執行緒保持響應。

我們可以從按鈕點擊處理器、背景服務或任何支援 await 的地方呼叫這個方法。 IronPrint 的異步方法——包括 PrintAsyncShowPrintDialogAsync——接受相同的 PrintSettings 配置,因此在同步和異步路徑之間紙張大小的行為是相同的。

我的下一步是什麼?

我們涵蓋了如何在 C# 中使用 IronPrint 的 PaperSize 枚舉設置紙張大小,從基本的單屬性配置到合併設置及異步列印。 PrintSettings 類別提供了一個乾淨且強型別的 API,消除了對紙張尺寸的猜測。

要繼續探索 IronPrint 的功能:

開始 30 天免費試用以在您自己的專案中測試紙張大小配置,或者查看部署到生產環境的授權選項

PaperOrientation.Landscape

Dpi

PaperMargins

Margins

Grayscale

false

常見問題

IronPrint是什麼,它如何幫助在C#中設定列印的紙張大小?

IronPrint是一個簡化C#中列印任務的程式庫。它允許開發者使用簡單的程式碼範例輕鬆配置諸如A4、信紙、法律紙等紙張尺寸。

我可以在C#中使用IronPrint設置自定義紙張尺寸嗎?

可以,IronPrint使您可以在C#中設置列印的自定義紙張尺寸。您可以定義符合您特定列印需求的尺寸。

如何使用IronPrint將紙張大小更改為A4?

要使用IronPrint將紙張大小更改為A4,您需要在程式碼中配置紙張大小設置。IronPrint提供了一個簡單的方法來將紙張大小設定為A4,僅需少量編碼工作。

IronPrint是否支持法律紙尺寸配置?

支持,IronPrint在C#中支持法律紙尺寸配置。您可以在您的列印設置程式碼中通過調整紙張大小設置輕鬆設置為法律紙大小。

是否可以使用IronPrint在不同紙張尺寸之間切換?

絕對可以,IronPrint允許您通過修改C#應用程式中的紙張大小設置在不同的紙張尺寸(如A4、信紙和法律紙)之間切換。

Curtis Chau
技術作家

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

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

準備好開始了嗎?
Nuget 下載 44,051 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

仍在滾動?

想要快速證明嗎? PM > Install-Package IronPrint
運行範例 看看您的文件如何到達印表機。