如何在 PDF 中使用 C# 配置打印设置 | IronPrint

如何使用 IronPrint 在 C# 中配置打印设置。

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

使用 IronPrint 的 PrintSettings 类在 C# 中配置打印设置,以控制纸张大小、方向、DPI、页边距等。 只需将 PrintSettings 实例化,设置您的首选项,然后将其传递给 Print 方法即可。

<! -- 待办事项:在此处添加图片 --> <! --介绍实现的示意图 --> <!--说明:说明代码概念的图表或截图 -->

快速入门:使用 IronPrint 设置进行配置和打印

首先创建一个 PrintSettings 对象,设置纸张大小、方向、DPI、副本和灰度等属性。 然后调用Printer.Print(...)即可立即应用这些设置——无需复杂的设置。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronPrint

    PM > Install-Package IronPrint

  2. 复制并运行这段代码。

    IronPrint.Printer.Print("document.pdf", new IronPrint.PrintSettings { PaperSize = IronPrint.PaperSize.A4, PaperOrientation = IronPrint.PaperOrientation.Landscape, Dpi = 300, NumberOfCopies = 2, Grayscale = true });
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronPrint,免费试用!
    arrow pointer

如何设置打印设置?

<! -- 待办事项:在此处添加图片 --> <! -- 图解设置打印设置的实现 --> <!--说明:说明代码概念的图表或截图 -->

要配置打印设置,请实例化 PrintSettings 类,并根据您的偏好进行配置。 在 PrintShowPrintDialog 方法中,将 PrintSettings 对象作为第二个参数传递。 下面的代码示例说明了这种用法。 有关更详细的示例,请查看打印设置代码示例页面。

// Import the necessary namespace for IronPrint
using IronPrint;

// Initialize a new instance of the PrintSettings class
PrintSettings settings = new PrintSettings();

// Configure various print settings
settings.PaperSize = PaperSize.A4;                // Set paper size to A4
settings.PaperOrientation = PaperOrientation.Landscape; // Set paper orientation to Landscape
settings.Dpi = 300;                               // Set print resolution to 300 DPI
settings.NumberOfCopies = 2;                      // Set the number of copies to 2
settings.PrinterName = "MyPrinter";               // Set the name of the printer
settings.PaperMargins = new Margins(10, 10, 10, 10); // Set margins to 10mm on each side
settings.Grayscale = true;                        // Print in grayscale

// Use the PrintSettings in the Print method
IronPrint.Printer.Print(document, settings);
// Import the necessary namespace for IronPrint
using IronPrint;

// Initialize a new instance of the PrintSettings class
PrintSettings settings = new PrintSettings();

// Configure various print settings
settings.PaperSize = PaperSize.A4;                // Set paper size to A4
settings.PaperOrientation = PaperOrientation.Landscape; // Set paper orientation to Landscape
settings.Dpi = 300;                               // Set print resolution to 300 DPI
settings.NumberOfCopies = 2;                      // Set the number of copies to 2
settings.PrinterName = "MyPrinter";               // Set the name of the printer
settings.PaperMargins = new Margins(10, 10, 10, 10); // Set margins to 10mm on each side
settings.Grayscale = true;                        // Print in grayscale

// Use the PrintSettings in the Print method
IronPrint.Printer.Print(document, settings);
' Import the necessary namespace for IronPrint
Imports IronPrint

' Initialize a new instance of the PrintSettings class
Private settings As New PrintSettings()

' Configure various print settings
settings.PaperSize = PaperSize.A4 ' Set paper size to A4
settings.PaperOrientation = PaperOrientation.Landscape ' Set paper orientation to Landscape
settings.Dpi = 300 ' Set print resolution to 300 DPI
settings.NumberOfCopies = 2 ' Set the number of copies to 2
settings.PrinterName = "MyPrinter" ' Set the name of the printer
settings.PaperMargins = New Margins(10, 10, 10, 10) ' Set margins to 10mm on each side
settings.Grayscale = True ' Print in grayscale

' Use the PrintSettings in the Print method
IronPrint.Printer.Print(document, settings)
$vbLabelText   $csharpLabel

为什么需要配置打印设置?

打印设置是指决定如何打印文档或内容的配置或参数集。 这些设置包括纸张大小、方向(纵向或横向)、打印分辨率(点/英寸 - DPI)、份数、打印机选择、页边距以及灰度打印等选项。 自定义这些设置,以实现特定的打印偏好和要求。

IronPrint 全面的打印设置功能为开发人员提供了对打印过程各个方面的精细控制。 无论是构建桌面应用程序还是ASP.NET网络应用程序,正确的配置都能确保在不同环境下获得一致的结果。

何时应使用自定义打印设置?

在需要对打印输出进行精确控制时,自定义打印设置是必不可少的,例如打印具有特定页边距的报告、生成多份文档或确保文档以正确方向打印以满足业务需求。

下面是一个实际例子,用于打印有特定要求的发票:

// Example: Printing invoices with business requirements
using IronPrint;

// Invoice printing with specific business settings
var invoiceSettings = new PrintSettings
{
    PaperSize = PaperSize.Letter,        // US Letter size for business documents
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 600,                           // High quality for professional output
    NumberOfCopies = 3,                  // Original + customer copy + file copy
    PaperMargins = new Margins(15, 15, 15, 25), // Extra bottom margin for footer
    Grayscale = false,                   // Keep company logo in color
    PrinterName = "Office Color Printer" // Specific high-quality printer
};

// Print the invoice
Printer.Print("invoice_2024_001.pdf", invoiceSettings);
// Example: Printing invoices with business requirements
using IronPrint;

// Invoice printing with specific business settings
var invoiceSettings = new PrintSettings
{
    PaperSize = PaperSize.Letter,        // US Letter size for business documents
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 600,                           // High quality for professional output
    NumberOfCopies = 3,                  // Original + customer copy + file copy
    PaperMargins = new Margins(15, 15, 15, 25), // Extra bottom margin for footer
    Grayscale = false,                   // Keep company logo in color
    PrinterName = "Office Color Printer" // Specific high-quality printer
};

// Print the invoice
Printer.Print("invoice_2024_001.pdf", invoiceSettings);
Imports IronPrint

' Example: Printing invoices with business requirements

' Invoice printing with specific business settings
Dim invoiceSettings As New PrintSettings With {
    .PaperSize = PaperSize.Letter,        ' US Letter size for business documents
    .PaperOrientation = PaperOrientation.Portrait,
    .Dpi = 600,                           ' High quality for professional output
    .NumberOfCopies = 3,                  ' Original + customer copy + file copy
    .PaperMargins = New Margins(15, 15, 15, 25), ' Extra bottom margin for footer
    .Grayscale = False,                   ' Keep company logo in color
    .PrinterName = "Office Color Printer" ' Specific high-quality printer
}

' Print the invoice
Printer.Print("invoice_2024_001.pdf", invoiceSettings)
$vbLabelText   $csharpLabel

如果不指定打印设置会怎样?

如果未指定打印设置,IronPrint 将使用系统默认打印机的默认设置,这可能与您的预期输出格式或质量要求不符。 要发现系统中可用的打印机,请使用 GetPrinterNames 方法 以编程方式检索所有已连接的打印机。

有哪些打印设置?

<! -- 待办事项:在此处添加图片 --> <! --可用打印设置的视觉演示 --> <!--描述:截图或图表 -->

探索以下所有可用的打印设置选项。 完整的 API 参考为每个属性和方法提供了详细的文档:

设置 说明 默认值 备注
默认设置 使用默认值初始化 IronPrint.PrintSettings 类的新实例 不适用 不适用
纸张大小 设置打印机使用的纸张尺寸 IronPrint.PaperSize.PrinterDefault 不适用
论文方向 指定纸张方向(如纵向或横向) IronPrint.PaperOrientation.Portrait 不适用
Dpi译文 以每英寸点数表示预期打印分辨率 300 实际用于打印的 DPI 可能会受到打印机性能的限制
份数 表示打印文档时生成的相同副本的数量 1 在某些平台上,可能存在无法准确复制多个副本的限制。 在这种情况下,IronPrint.PrintSettings.NumberOfCopies 的指定值可能会被忽略,导致只打印一份副本。
打印机名称 指定用于打印的打印机名称 空(使用操作系统默认打印机) 如果您在 PrintDialog 中选择打印机,此设置将被忽略。 要获取可用的打印机名称,您可以使用 IronPrint.Printer.GetPrinterNamesIronPrint.Printer.GetPrinterNamesAsync 抓取打印机名称列表
纸边距 以毫米为单位设置打印时使用的页边距 空(使用打印机默认页边距) 不适用
灰度 表示是否以灰度打印 错误(尝试彩色打印) 不适用
扁平化 在打印之前将 PDF 格式压平,这对于显示表单字段值和图像非常有用 错误 不适用
托盘 用于打印作业的打印机托盘。 这样,用户就可以指定将纸张送入打印机的特定托盘 空(使用打印机默认托盘) 如果您在打印对话框中选择托盘,此设置将被忽略。 要获取可用纸盒,可以使用IronPrint.Printer.GetPrinterTrays(System.String)IronPrint.Printer.GetPrinterTraysAsync(System.String) 。 此托盘选择属性仅适用于 Windows

哪些打印设置应始终进行配置?

对于大多数业务应用程序,请始终配置 PaperSize, PaperOrientationDpi 以确保在不同打印机和系统上输出一致。 这三种设置对文档的外观和可读性影响最大。

在使用基于对话框的打印时,请使用 ShowPrintDialog 方法将自定义设置与用户交互结合起来:

// Pre-configure settings but allow user to modify
var presetSettings = new PrintSettings
{
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 300
};

// Show dialog with preset values
Printer.ShowPrintDialog("report.pdf", presetSettings);
// Pre-configure settings but allow user to modify
var presetSettings = new PrintSettings
{
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 300
};

// Show dialog with preset values
Printer.ShowPrintDialog("report.pdf", presetSettings);
Imports System

' Pre-configure settings but allow user to modify
Dim presetSettings As New PrintSettings With {
    .PaperSize = PaperSize.A4,
    .PaperOrientation = PaperOrientation.Portrait,
    .Dpi = 300
}

' Show dialog with preset values
Printer.ShowPrintDialog("report.pdf", presetSettings)
$vbLabelText   $csharpLabel

如何处理特定平台的设置?

某些设置(如托盘选择)仅适用于 Windows。 在使用特定平台的功能时,一定要检查平台兼容性,并为跨平台应用程序提供后备行为。 有关特定平台问题的故障排除,请查阅工程支持指南

常见的打印设置组合有哪些?

常见的组合包括:A4/纵向/300 DPI,用于标准文件;A3/横向/600 DPI,用于详细报告;Letter/纵向/300 DPI/灰度,用于草稿打印以节省油墨。

下面是一个展示不同场景的示例:

// Standard office document
var standardDocument = new PrintSettings
{
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 300
};

// Detailed engineering drawing
var technicalDrawing = new PrintSettings
{
    PaperSize = PaperSize.A3,
    PaperOrientation = PaperOrientation.Landscape,
    Dpi = 600,
    Grayscale = false
};

// Draft mode for review
var draftMode = new PrintSettings
{
    PaperSize = PaperSize.Letter,
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 150,
    Grayscale = true,
    NumberOfCopies = 5
};

// High-volume batch printing
var batchPrint = new PrintSettings
{
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 300,
    NumberOfCopies = 100,
    Tray = "Tray 2" // Large capacity tray on Windows
};
// Standard office document
var standardDocument = new PrintSettings
{
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 300
};

// Detailed engineering drawing
var technicalDrawing = new PrintSettings
{
    PaperSize = PaperSize.A3,
    PaperOrientation = PaperOrientation.Landscape,
    Dpi = 600,
    Grayscale = false
};

// Draft mode for review
var draftMode = new PrintSettings
{
    PaperSize = PaperSize.Letter,
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 150,
    Grayscale = true,
    NumberOfCopies = 5
};

// High-volume batch printing
var batchPrint = new PrintSettings
{
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 300,
    NumberOfCopies = 100,
    Tray = "Tray 2" // Large capacity tray on Windows
};
Imports System

' Standard office document
Dim standardDocument As New PrintSettings With {
    .PaperSize = PaperSize.A4,
    .PaperOrientation = PaperOrientation.Portrait,
    .Dpi = 300
}

' Detailed engineering drawing
Dim technicalDrawing As New PrintSettings With {
    .PaperSize = PaperSize.A3,
    .PaperOrientation = PaperOrientation.Landscape,
    .Dpi = 600,
    .Grayscale = False
}

' Draft mode for review
Dim draftMode As New PrintSettings With {
    .PaperSize = PaperSize.Letter,
    .PaperOrientation = PaperOrientation.Portrait,
    .Dpi = 150,
    .Grayscale = True,
    .NumberOfCopies = 5
}

' High-volume batch printing
Dim batchPrint As New PrintSettings With {
    .PaperSize = PaperSize.A4,
    .PaperOrientation = PaperOrientation.Portrait,
    .Dpi = 300,
    .NumberOfCopies = 100,
    .Tray = "Tray 2" ' Large capacity tray on Windows
}
$vbLabelText   $csharpLabel

如需了解更全面的示例和高级打印场景,请浏览打印文档教程,其中涵盖了从头到尾的完整打印工作流程。

在生产环境中实施打印设置时,尤其是在使用 Web.config 的 Web 应用程序中实施打印设置时,请查看 在 Web.config 中设置许可证密钥的指南,以确保配置正确。

常见问题解答

如何在 C# 中配置打印设置?

要在 C# 中配置打印设置,请实例化 IronPrint 中的 PrintSettings 类,并设置 PaperSize、PaperOrientation、Dpi、NumberOfCopies 和 Grayscale 等属性。然后将此 PrintSettings 对象作为第二个参数传递给 Print 或 ShowPrintDialog 方法。

我可以自定义哪些打印设置?

IronPrint 的 PrintSettings 类允许您自定义纸张大小(A4、Letter 等)、方向(纵向/横向)、DPI 分辨率、份数、打印机选择、纸张边距和灰度打印选项。

如何设置纸张大小和方向?

在调用打印方法之前,使用 IronPrint PrintSettings 对象中的 PaperSize 属性(如 PaperSize.A4)设置纸张大小,并使用 PaperOrientation 属性(如 PaperOrientation.Landscape)设置方向。

我可以打印多份文档吗?

是的,您可以通过设置 PrintSettings 类中的 NumberOfCopies 属性来打印多份副本。例如,settings.NumberOfCopies = 2 将使用 IronPrint 打印两份文档。

如何设置打印时的自定义页边距?

使用 PrintSettings 中的 PaperMargins 属性和 Margins 类设置自定义页边距。例如:settings.PaperMargins = new Margins(10,10,10,10)在使用 IronPrint 打印时设置所有边距为 10 毫米。

我可以用灰度而不是彩色打印吗?

是的,通过将 PrintSettings 对象中的 Grayscale 属性设置为 true 来启用灰度打印。这将在通过 IronPrint 打印时将彩色文档转换为灰度文档。

Curtis Chau
技术作家

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

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

准备开始了吗?
Nuget 下载 37,046 | 版本: 2026.2 刚刚发布