如何用C#打印PDF文档 | IronPRINT

How to Print PDF Files in C# 14

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

IronPDF 使 C# 开发人员只需调用一个方法就能以编程方式将 PDF 文件直接打印到物理打印机,为 .NET 应用程序中的自动打印工作流提供对打印机设置、分辨率(DPI)和文档处理的精确控制

从 .NET C# 代码向打印机发送 PDF 自动化打印过程,使您可以将打印功能集成到应用程序中,减少人工操作,并确保文档制作的一致性。 它提供了对打印过程的精确控制。 对于生成发票报告或任何需要无用户干预物理副本的文档的应用程序来说,这一功能是必不可少的

IronPdf 提供通过一个方法调用以编程方式打印到物理打印机的选项,允许您打印多个 PDF 文件。 打印机分辨率也可通过可配置的 水平和垂直 DPI 进行指定。 使用同时接受 Microsoft PrinterSettingsPrintController 的方法,可以进一步控制 PDF 打印过程。 在开始打印之前,请确保您已在 .NET 项目中正确安装了 IronPDF

快速入门:使用IronPDF在.NET中打印 PDF

只需几行代码,即可使用 IronPDF 轻松打印 PDF 文档。 本指南将向您展示如何快速将PDF 打印集成到您的 .NET 应用程序中。 有了 IronPdf,您只需进行最少的设置即可将文件直接发送到打印机,同时享受灵活的设置高质量的输出。 立即开始,简化您的文档工作流程。 如需了解更多高级打印场景,请浏览我们的综合纸张打印 PDF 指南。

  1. 使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 复制并运行这段代码。

    IronPdf.PdfDocument.FromFile("example.pdf").Print();
  3. 部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronPDF

    arrow pointer


如何使用 IronPDF 打印 PDF 文件?

Print 方法可通过 PdfDocument 对象使用,允许您打印新创建的和现有的 PDF 文件。 默认情况下,该方法使用系统的默认打印机,但您可以通过将打印机名称作为字符串传递给 Print 方法来指定不同的打印机。 无论您是动态生成文档还是处理已有的 PDF,这种灵活性都能让您轻松地将 PDF 打印集成到现有的工作流程中。

所有打印功能仅在 Windows 系统上受支持。

我可以针对哪些打印机?

IronPDF 支持打印到 Windows 系统中任何已安装的打印机,包括网络打印机、"Microsoft Print to PDF "等虚拟打印机以及通过 USB 或网络连接的物理打印机。 要具体打印到网络打印机,请查看我们的网络打印机故障排除指南,了解更多配置技巧。

:path=/static-assets/pdf/content-code-examples/how-to/print-pdf-print.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Test printing</h1>");

// Send the document to "Microsoft Print to PDF" printer
pdf.Print("Microsoft Print to PDF");
$vbLabelText   $csharpLabel

将 PDF 发送至打印时会发生什么?

当您调用 Print 方法时, IronPDF会将您的 PDF 文档发送到 Windows 打印后台处理程序,该程序管理所选打印机的打印队列。 文件将显示在打印队列中,并提供文件名、大小和状态等详细信息。 然后,打印线轴会根据打印机的功能和当前队列位置处理文档。

Windows 打印队列显示 Microsoft Print to PDF 队列中的文档,显示作业状态和文件详情

如何控制打印质量和分辨率?

您可以通过向 Print 方法提供所需的 DPI 值来指定打印 PDF 的分辨率,该方法对水平和垂直方向应用相同的 DPI。 要使用不同的 DPI 值,请向方法传递两个参数:第一个用于水平(x)DPI,第二个用于垂直(y)DPI。 DPI 值越高,打印质量越好,但文件尺寸越大,处理时间越长。

何时应调整 DPI 设置?

不同的打印场景需要不同的 DPI 设置。 对于标准办公文档,150-300 DPI 可提供良好的质量。 对于高质量图形或照片,请使用 600 DPI 或更高。 打印草稿可使用 72-150 DPI,以节省时间和资源。 在创建仅供数字浏览的 PDF 时,请参考我们的 PDF 压缩指南,以优化文件大小。

:path=/static-assets/pdf/content-code-examples/how-to/print-pdf-dpi.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Test printing</h1>");

// Set custom DPI
pdf.Print(300);

// Specify printing resolution
pdf.Print(10, 10, "Microsoft Print to PDF");
$vbLabelText   $csharpLabel

什么 DPI 值最适合不同的打印类型?

让我们在下一个示例中看看如何栅格化和打印 PDF 文件。 DPI 的选择取决于您的具体需求:

  • 文本文件: 300 DPI 可提供清晰可读的文本

  • 混合内容(文本和图像): 300-400 DPI 兼顾质量和文件大小

  • 高质量照片: 600 DPI 或更高,保留图像细节

  • 打印草稿: 150 DPI,用于快速审阅副本

  • 存档质量: 1200 DPI,可长期保存

如何在不进行物理打印的情况下保存 PDF?

PrintToFile 方法通过将 PDF 文档转换为位图(基于像素)图像并将其保存为 PDF 文件,从而高效地栅格化 PDF 文档。此过程由 Windows 内置打印机(例如"Microsoft Print to PDF")处理。值得注意的是,此方法将 PDF 文件保存到磁盘,而无需将其发送到物理打印机。 有关保存 PDF 的更多方法,请浏览我们的 导出和保存 PDF 综合指南

为什么使用 PrintToFile 而不是常规保存?

当您需要在没有物理输出的情况下模拟打印过程时,PrintToFile 具有独特的优势。 它对于创建打印就绪文件、测试打印布局或生成与纸张完全一致的文档特别有用。 当您需要将 PDF 转换为特定格式或应用特定的打印机转换时,这种方法也会有所帮助。

:path=/static-assets/pdf/content-code-examples/how-to/print-pdf-print-to-file.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Test printing</h1>");

// Print to file
pdf.PrintToFile("");
$vbLabelText   $csharpLabel

光栅化有哪些优点?

通过 PrintToFile 实现栅格化有几个好处:

  • 一致的外观:确保 PDF 在不同的阅读器上看起来一致

  • 字体嵌入:将文本转换为图像,消除字体兼容性问题

  • Security:使文本不可选择并难以提取

  • 打印预览:准确显示文档打印后的效果

  • 文件大小优化:可减少复杂矢量图形的文件大小

如需在内存中处理 PDF 而不保存到磁盘,请参阅我们的 PDF to MemoryStream 指南


如何访问打印机高级设置?

要自定义打印选项,请使用 GetPrintDocument 方法,该方法接受 Microsoft PrinterSettingsPrintController 对象。 此方法返回当前打印文档对象。 PrinterSettings 允许您配置选项,如页面范围和打印机选择,而 PrintController 使您能够控制打印过程,包括处理异常、进度报告、打印对话框、打印预览和其他相关任务。 打印机设置选项的详细描述在代码示例之下提供。 如需定制纸张尺寸,请参阅我们的定制纸张尺寸指南

我可以配置哪些设置?

:path=/static-assets/pdf/content-code-examples/how-to/print-pdf-printer-setting.cs
using IronPdf;
using System.Drawing.Printing;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Testing</h1>");

PrinterSettings settings = new PrinterSettings() {
    PrinterName = "Microsoft Print to PDF",

    // Number of Copy
    Copies = 2,

    // Page range to print
    FromPage = 2,
    ToPage = 4,
};

PrintDocument document = pdf.GetPrintDocument(settings);

// Print
document.Print();
$vbLabelText   $csharpLabel

每个 PrinterSettings 属性控制什么?

了解每个属性有助于您优化打印工作流程:

  • CanDuplex:表示打印机是否支持双面打印。 如果 true,则可以在纸张的两面进行打印; 否则,无法进行双面打印。

  • Collate:指定打印时是否应校对(按顺序排列)多个 PDF 文件或 PDF 文档副本。 当 true 时,打印机将复印件整理好; 当 false 时,则不会。

  • Copies: 设置要打印的 PDF 文档的份数。 它确定打印多少个相同的文档副本。

  • DefaultPageSettings:代表打印机的默认页面设置,包括纸张大小、页边距和方向。 这对于确保您的 PDF 文件在不同纸张格式上正确打印至关重要**。

  • Duplex:指定要使用的双面打印模式。 选项包括 Duplex.HorizontalDuplex.Vertical

  • InstalledPrinters: 提供系统中已安装打印机名称的集合。 您可以遍历此集合以获取可用打印机的名称。

  • IsDefaultPrinter:指示是否将 PrinterName 中指定的打印机设置为系统上的默认打印机。

  • IsPlotter: 确定打印机是否为绘图仪。 绘图仪打印机常用于大幅面打印,例如建筑或工程图纸。

  • IsValid: 表示打印机设置是否有效,是否可用于打印 PDF 文件。

  • LandscapeAngle:指定打印机横向方向的角度(旋转),纵向通常为 90 度。

  • MaximumCopies: 表示打印 PDF 时可指定的最大份数。

  • MaximumPage:指定打印或转换时可设置的最大页数。

  • MinimumPage:指定打印或转换时可设置的最小页数。

  • PaperSizes:提供打印机支持的纸张尺寸集合。 您可以查询此集合以确定可用的纸张尺寸。

  • PaperSources:提供打印机可用的纸张来源或纸盘集合。 这在选择用于打印 PDF 文件的纸张来源时很有用。

  • PrinterName:指定用于打印或转换的打印机名称。

  • PrinterResolutions:提供可用打印机分辨率集合,允许您选择打印质量。

  • PrintFileName:使用 PrintToFile 打印到文件时获取或设置文件名。

  • PrintRange:指定要打印的 PDF 页面的范围,如所有页面、特定范围或选区。 使用此功能打印特定页面。

  • FromPage: 指定打印或转换的起始页号。 打印将从该页面开始。

  • ToPage: 指定用于打印或转换的结束页码。 打印将在到达该页面后停止。

  • PrintToFile:表示是否打印到文件而不是物理打印机。 当使用 true 时,您可以使用 PrintFileName 指定文件路径。

  • SupportsColor: 表示打印机是否支持彩色打印。 如果 true,则支持彩色打印; 否则,仅限于黑白(单色)打印。

如何配置默认打印机?

最后,要将默认打印机配置为打印 PDF,请访问机器设置中的"打印机和扫描仪"部分。 在Windows 10 和 11中,导航至设置 > 设备 > 打印机和扫描仪,然后单击所需打印机旁边的"管理",然后选择"设置为默认设置",这将确保 IronPDF 在未提供特定打印机名称时使用您首选的打印机。 如需在打印前从零开始创建 PDF,请浏览我们的完整 PDF 创建教程

常见问题解答

如何在 C# .NET 中以编程方式打印 PDF 文件?

通过 IronPDF,您只需调用一个 Print() 方法就能以编程方式打印 PDF 文件。只需使用 IronPdf.PdfDocument.FromFile("example.pdf").Print() 加载 PDF 文件,即可将其发送至默认打印机,或指定打印机名称以针对不同的打印机。

在打印 PDF 时,我可以如何控制打印机设置?

IronPDF 可精确控制打印机设置,包括分辨率(DPI)、水平和垂直分辨率。您可以使用接受 Microsoft PrinterSettings 和 PrintController 的方法对 PDF 打印过程进行高级控制。

我可以打印到特定的打印机而不是默认打印机吗?

是的,IronPDF 允许您通过将打印机名称作为字符串传递给 Print 方法来指定不同的打印机。默认情况下,它会使用系统的默认打印机,但您也可以轻松指定系统中任何可用的打印机。

是否可以自动打印多个 PDF 文件?

是的,IronPDF 支持以编程方式打印多个 PDF 文件,是批量处理和自动化工作流程的理想选择。这对于无需用户干预即可生成发票、报告或需要物理副本的文档的应用程序尤其有用。

PDF 打印支持哪些平台?

IronPDF 专注于 .NET 应用程序,而 Iron Software 还提供 IronPrint,这是一个专用打印库,兼容 Windows、macOS、Android 和 iOS 平台,可实现更广泛的打印功能。

如何在 .NET 项目中开始使用 PDF 打印?

首先,在您的 .NET 项目中安装 IronPDF,然后使用简单的工作流程:使用 PdfDocument.FromFile() 加载 PDF 文件,并调用 Print() 方法。对于高级设置,可使用 GetPrintDocument 方法访问更多打印选项。

Curtis Chau
技术作家

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

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

审核者
Jeff Fritz
Jeffrey T. Fritz
首席项目经理 - .NET 社区团队
Jeff 也是 .NET 和 Visual Studio 团队的首席项目经理。他是 .NET Conf 虚拟会议系列的执行制片人,并主持“Fritz and Friends”直播节目,每周两次与观众一起谈论技术并编写代码。Jeff 撰写研讨会、演示文稿并计划包括 Microsoft Build、Microsoft Ignite、.NET Conf 和 Microsoft MVP 峰会在内的最大型微软开发者活动的内容。
准备开始了吗?
Nuget 下载 17,803,474 | 版本: 2026.3 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronPdf
运行示例看着你的HTML代码变成PDF文件。