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

// 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)
$vbLabelText   $csharpLabel

首先实例化 PrintSettings,该实例将使用打印机的默认设置进行初始化。 随后我们将 PaperSize 替换为 PaperSize.Letter,该值对应标准 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;

// 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)
$vbLabelText   $csharpLabel

此处为清晰起见,采用了对象初始化器语法。 PaperOrientation.Landscape 将 A4 纸张旋转至其较宽的一边。 Dpi 设置为 300 可确保图表和细小文字的输出清晰锐利。 PaperMargins 通过 Margins 构造函数接受四个以毫米为单位的值——顶部、右侧、底部、左侧。 Grayscale 属性的默认值为 false,但为了提高可读性,我们对其进行了显式设置。

这些特性能够协同工作且互不冲突。 IronPrint 会验证配置,并将合并后的设置作为单个打印作业传递给打印机驱动程序。 有关打印机选择纸盒配置等高级设置,请参阅完整的打印设置指南

如何使用自定义纸张尺寸异步打印PDF文档?

对于无法阻塞主线程的应用程序(例如 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
$vbLabelText   $csharpLabel

这个基于类的示例展示了一个真实的模式,其中 DocumentPrinter 服务封装了打印逻辑。 我们采用 PaperSize.Legal(8.5 × 14 英寸)规格,这是合同和法律文件的标准格式。 await 关键字可确保在 IronPrint 处理打印任务期间,调用线程保持响应状态。

我们可以在按钮点击处理程序、后台服务或任何支持 await 的地方调用此方法。 IronPrint 的异步方法(包括 PrintAsyncShowPrintDialogAsync)接受相同的 PrintSettings 配置,因此同步和异步路径中的纸张尺寸行为完全一致。

我的下一个步骤是什么?

我们介绍了如何在 C# 中使用 IronPrint 的 PaperSize 枚举设置纸张尺寸,内容涵盖从基础的单属性配置到组合设置及异步打印。 PrintSettings 类提供了一个简洁、强类型的 API,消除了对纸张尺寸的猜测。

继续探索 IronPrint 的功能:

立即开始 30天试用,在您的项目中测试纸张尺寸配置,或查看用于生产部署的许可选项

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 38,930 | 版本: 2026.4 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronPrint
运行示例 观看您的文档打到打印机上。