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

// 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 纸张旋转至其较宽的一边。 DPI 设置为 300 可确保图表和细小文字的输出清晰锐利。 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、Letter和Legal等纸张尺寸。

我可以使用IronPrint在C#中设置自定义纸张尺寸吗?

是的,IronPrint使您能够在C#中为打印设置自定义纸张尺寸。您可以定义符合特定打印要求的尺寸。

如何使用IronPrint将纸张尺寸更改为A4?

要使用IronPrint将纸张尺寸更改为A4,您需要在代码中配置纸张尺寸设置。IronPrint提供了一个简单的方法,以最小的编码努力来设置A4纸张尺寸。

IronPrint支持C#中的Legal纸张尺寸配置吗?

是的,IronPrint支持C#中的Legal纸张尺寸配置。您可以通过调整打印设置代码中的纸张尺寸设置轻松设置为Legal。

是否可以使用IronPrint在不同纸张尺寸之间切换?

绝对可以,IronPrint允许您通过修改C#应用程序中的纸张尺寸设置在A4、Letter和Legal等不同纸张尺寸之间切换。

Curtis Chau
技术作家

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

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

准备开始了吗?
Nuget 下载 41,154 | 版本: 2026.5 just released
Still Scrolling Icon

还在滚动吗?

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