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

如何在 C# 中打印 PDF 文件;

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

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

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

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

  1. 使用 NuGet 包管理器安装 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 或网络连接的物理打印机。 要具体打印到网络打印机,请查看我们的[网络打印机故障排除指南](https://ironpdf.com/troubleshooting/print-from-network-printer/),了解更多配置技巧。 ```csharp :path=/static-assets/pdf/content-code-examples/how-to/print-pdf-print.cs ```

将 PDF 发送至打印时会发生什么? 当您调用 `Print` 方法时,IronPDF 会将您的 PDF 文档发送到 Windows 打印线轴,该线轴管理选定打印机的打印队列。 文件将显示在打印队列中,并提供文件名、大小和状态等详细信息。 然后,打印线轴会根据打印机的功能和当前队列位置处理文档。
Windows 打印队列显示 Microsoft 打印为 PDF,队列中有文档,显示作业状态和文件详细信息

如何控制打印质量和分辨率? --> <!--说明:说明代码概念的图表或截图 --> 您可以通过向 `Print` 方法提供所需的 DPI 值来指定打印 PDF 的分辨率,该方法会对水平和垂直尺寸应用相同的 DPI。 要使用不同的 DPI 值,请向方法传递两个参数:第一个用于水平(x)DPI,第二个用于垂直(y)DPI。 DPI 值越高,打印质量越好,但文件尺寸越大,处理时间越长。

何时应调整 DPI 设置? 不同的打印场景需要不同的 DPI 设置。 对于标准办公文档,150-300 DPI 可提供良好的质量。 对于高质量图形或照片,请使用 600 DPI 或更高。 打印草稿可使用 72-150 DPI,以节省时间和资源。 在创建仅供数字浏览的 PDF 时,请参考我们的 [PDF 压缩指南](https://ironpdf.com/how-to/pdf-compression/),以优化文件大小。 ```csharp :path=/static-assets/pdf/content-code-examples/how-to/print-pdf-dpi.cs ```

什么 DPI 值最适合不同的打印类型? 让我们在下一个示例中看看如何栅格化和打印 PDF 文件。 DPI 的选择取决于您的具体需求: - **文本文件**:300 DPI 可提供清晰可读的文本 - **混合内容(文本和图像)**:300-400 DPI,兼顾质量和文件大小 - **高质量照片**:600 DPI 或更高,保留图像细节 - **草稿打印**:150 DPI,用于快速审阅副本 - **文件质量**:1200 DPI,可长期保存

如何在不进行物理打印的情况下保存 PDF? `PrintToFile` 方法通过将 PDF 文档转换为位图(基于像素)图像并将其保存为 PDF 文件来有效栅格化。此过程由 Windows 内置打印机处理,例如"Microsoft Print to PDF"。值得注意的是,此方法将 PDF 保存到磁盘而不发送到物理打印机。 有关保存 PDF 的更多方法,请浏览我们的 [ 导出和保存 PDF 综合指南](https://ironpdf.com/how-to/export-save-pdf-csharp/)。

为什么使用 PrintToFile 而不是常规保存? 当您需要在没有物理输出的情况下模拟打印过程时,PrintToFile 具有独特的优势。 它对于创建打印就绪文件、测试打印布局或生成与纸张完全一致的文档特别有用。 当您需要将 PDF 转换为特定格式或应用特定的打印机转换时,这种方法也会有所帮助。 ```csharp :path=/static-assets/pdf/content-code-examples/how-to/print-pdf-print-to-file.cs ```

光栅化有哪些优点? 通过 PrintToFile 实现栅格化有几个好处: - **一致的外观**:确保 PDF 在不同的阅读器上看起来一致 - **字体嵌入**:将文本转换为图像,消除字体兼容性问题 - **安全性**:使文本不可选择并难以提取 - **打印预览**:准确显示文档打印后的效果 - **文件大小优化**:可减少复杂矢量图形的文件大小 如需在内存中处理 PDF 而不保存到磁盘,请参阅我们的 [PDF to MemoryStream 指南](https://ironpdf.com/how-to/pdf-to-memory-stream/)。

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

我可以配置哪些设置? ```csharp :path=/static-assets/pdf/content-code-examples/how-to/print-pdf-printer-setting.cs ```

每个 PrinterSettings 属性控制什么? 了解每个 `PrinterSettings` 属性可帮助您微调打印工作流程: - **CanDuplex**:表示打印机是否支持双面打印。 如果为 true,可以在纸张的两面打印; 否则,无法进行双面打印。 - **校对**:指定打印时是否要对多个 PDF 文件或 PDF 文档副本进行校对(按顺序排列)。 如果为 true,打印机会整理副本; 如果为 false,则不会。 - **份数**:设置要打印的 PDF 文档的份数。 它确定打印多少个相同的文档副本。 - **默认页面设置**:代表打印机的默认页面设置,包括纸张大小、页边距和方向。 这对于确保在不同纸张格式上正确打印 PDF 至关重要。 - **双面**:指定要使用的双面打印模式。 选项包括 `Duplex.Default`、`Duplex.Simplex`(单面)、`Duplex.Horizontal` 和 `Duplex.Vertical`。 - **已安装打印机**:提供系统中已安装打印机名称的集合。 您可以遍历此集合以获取可用打印机的名称。 - **IsDefaultPrinter**:指示 `PrinterName` 中指定的打印机是否被设置为系统的默认打印机。 - **IsPlotter**:确定打印机是否为绘图仪。 绘图仪打印机常用于大幅面打印,例如建筑或工程图纸。 - **IsValid**:表示打印机设置是否有效,是否可用于打印 PDF 文件。 - **横向角度(LandscapeAngle)**:指定打印机的横向角度(旋转),纵向通常为 90 度。 - **最大份数**:表示打印 PDF 时可指定的最大份数。 - **MaximumPage**:指定打印或转换时可设置的最大页数。 - **最小页数**:指定打印或转换时可设置的最小页数。 - **纸张尺寸**:提供打印机支持的纸张尺寸集合。 您可以查询此集合以确定可用的纸张尺寸。 - **PaperSources**:提供打印机可用纸源或纸盘的集合。 这在选择用于打印 PDF 文件的纸张来源时很有用。 - **打印机名称**:指定用于打印或转换的打印机名称。 - **打印机分辨率**:提供可用打印机分辨率集合,允许您选择打印质量。 - **PrintFileName**:使用 `PrintToFile` 打印到文件时,获取或设置文件名。 - **PrintRange**:指定要打印的 PDF 页面范围,如所有页面、特定范围或选区。 使用此功能打印特定页面。 - **FromPage**:指定打印或转换的起始页号。 打印将从该页面开始。 - **ToPage**:指定用于打印或转换的结束页码。 打印将在到达该页面后停止。 - **PrintToFile**:表示是否打印到文件而不是物理打印机。 为真时,您可以使用 `PrintFileName` 指定文件路径。 - **SupportsColor**:表示打印机是否支持彩色打印。 如果属实,则支持彩色打印; 否则,仅限于黑白(单色)打印。

如何配置默认打印机? 最后,要配置默认打印机打印 PDF,请进入机器设置的 "打印机和扫描仪 "部分。 在 Windows 10 和 11 中,导航至 "设置">"设备">"打印机和扫描仪",然后单击所需打印机旁边的 "管理",再选择 "设置为默认"。这样可以确保在未提供特定打印机名称时,IronPDF 使用您首选的打印机。 如需在打印前从零开始创建 PDF,请浏览我们的[完整 PDF 创建教程](https://ironpdf.com/tutorials/csharp-create-pdf-complete-tutorial/)。

常见问题解答

如何在 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,012,929 | 版本: 2025.12 刚刚发布