如何在 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枚举设置纸张尺寸 - 将设置传递给
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 国际标准、美国常用尺寸以及打印机默认设置。 下表列出了所有可用的选项。
| 枚举值 | 标准 | 尺寸(毫米) | 尺寸(英寸) |
|---|---|---|---|
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 会验证配置,并将合并后的设置作为单个打印作业传递给打印机驱动程序。 有关打印机选择和纸盒配置等高级设置,请参阅完整的打印设置指南。
如何使用自定义纸张尺寸异步打印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
这个基于类的示例展示了一个真实的模式,其中 DocumentPrinter 服务封装了打印逻辑。 我们采用 PaperSize.Legal(8.5 × 14 英寸)规格,这是合同和法律文件的标准格式。 await 关键字可确保在 IronPrint 处理打印任务期间,调用线程保持响应状态。
我们可以在按钮点击处理程序、后台服务或任何支持 await 的地方调用此方法。 IronPrint 的异步方法(包括 PrintAsync 和 ShowPrintDialogAsync)接受相同的 PrintSettings 配置,因此同步和异步路径中的纸张尺寸行为完全一致。
我的下一个步骤是什么?
我们介绍了如何在 C# 中使用 IronPrint 的 PaperSize 枚举设置纸张尺寸,内容涵盖从基础的单属性配置到组合设置及异步打印。 PrintSettings 类提供了一个简洁、强类型的 API,消除了对纸张尺寸的猜测。
继续探索 IronPrint 的功能:
立即开始 30天试用,在您的项目中测试纸张尺寸配置,或查看用于生产部署的许可选项。

