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

How to Print PDF Files in C#

This article was translated from English: Does it need improvement?
Translated
View the article in English
role="alert">探索 IronPrint .NET 打印库是 Iron Software 的全新 .NET 打印库,提供跨多个平台的兼容性,包括 Windows、macOS、Android 和 iOS。了解如何开始使用 IronPrint 现在!

从 .NET C# 代码将 PDF 发送到打印机自动化了打印过程,使您能够将打印功能集成到应用程序中,减少手动工作,并确保 PDF 文件生成的一致性。 它提供对打印过程的精确控制。

IronPDF 提供了一个选项,可以快速通过一项方法调用以编程方式将 PDF 打印到物理打印机上,允许您打印多个 PDF 文件。 可以通过设置可配置的水平和垂直 DPI 指定打印机分辨率。 使用接受 Microsoft PrinterSettingsPrintController 的方法进一步控制 PDF 打印过程。

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

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

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. Copy and run this code snippet.

    IronPdf.PdfDocument.FromFile("example.pdf").Print();
  3. Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

最小化工作流程(5 步骤)

  1. 下载用于打印 PDF 的 IronPDF 库
  2. 准备输入 PDF 文件用于打印
  3. 使用 Print 方法将 PDF 文件发送至默认打印机
  4. 指定打印机名称以发送到其他打印机
  5. 使用 GetPrintDocument 方法进行高级打印机设置


打印 PDF 文件示例

Print 方法通过 PdfDocument 对象提供,使您能够打印新创建和现有的 PDF 文件。 默认情况下,方法使用系统的默认打印机,但您可以通过将其名称作为字符串传递给 Print 方法来指定其他打印机。

请注意所有打印功能仅在 Windows 上受支持。

: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");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

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

' Send the document to "Microsoft Print to PDF" printer
pdf.Print("Microsoft Print to PDF")
$vbLabelText   $csharpLabel
class="content-img-align-center">
class="center-image-wrapper">打印队列

<hr

打印机分辨率

您可以通过向 Print 方法提供所需的 DPI 值来指定打印的 PDF 的分辨率,这将应用相同的 DPI 到水平和垂直方向。 要使用不同的 DPI 值,请向方法传递两个参数:第一个用于水平(x)DPI,第二个用于垂直(y)DPI。

: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");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

Private pdf As PdfDocument = 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

让我们在下一个示例中看看如何栅格化和打印 PDF 文件。

<hr

打印到文件

PrintToFile 方法通过将 PDF 文档转换为位图(基于像素)图像并将其保存为 PDF 文件来有效栅格化。此过程由 Windows 内置打印机处理,例如“Microsoft Print to PDF”。值得注意的是,此方法将 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("");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

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

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

<hr

探索打印 PDF 文档设置

要自定义打印选项,请使用 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();
Imports IronPdf
Imports System.Drawing.Printing

Private renderer As New ChromePdfRenderer()

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

Private settings As New PrinterSettings() With {
	.PrinterName = "Microsoft Print to PDF",
	.Copies = 2,
	.FromPage = 2,
	.ToPage = 4
}

Private document As PrintDocument = pdf.GetPrintDocument(settings)

' Print
document.Print()
$vbLabelText   $csharpLabel
  • CanDuplex:指示打印机是否支持双面(双面)打印。 如果为 true,可以在纸张的两面打印; 否则,无法进行双面打印。
  • Collate:指定当打印多个 PDF 文件或 PDF 文档的多个副本时是否整理(按顺序组织)。 如果为 true,打印机会整理副本; 如果为 false,则不会。
  • Copies:设置要打印的 PDF 文档的副本数。 它确定打印多少个相同的文档副本。
  • DefaultPageSettings:表示打印机的默认页面设置,包括纸张尺寸、边距和方向。
  • Duplex:指定要使用的双面(双面)打印模式。 选项包括 Duplex.Default、Duplex.Simplex(单面)、Duplex.Horizontal 和 Duplex.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,您可以转到机器设置的“打印机和扫描仪”部分。

常见问题解答

什么是使用.NET C#打印PDF文档的最佳方法?

使用.NET C#打印PDF文档的最佳方法是利用IronPDF库。它提供了一个简单的`Print`方法,允许您将PDF文件直接发送到物理打印机。

如何在我的.NET项目中安装IronPDF库?

您可以使用Visual Studio中的NuGet包管理器在您的.NET项目中安装IronPDF库。在NuGet包管理器中搜索'IronPDF'并将其添加到您的项目中。

我可以自定义PDF文档的打印设置吗?

是的,使用IronPDF,您可以通过`GetPrintDocument`方法自定义打印设置,该方法允许您指定如打印机选择、页面范围和双面打印等选项。

是否可以从PDF文件打印特定页面?

是的,您可以通过在IronPDF的PrinterSettings对象中设置`PrintRange`、`FromPage`和`ToPage`属性来从PDF文件打印特定页面。

如何以高质量设置打印PDF?

要使用IronPDF以高质量设置打印PDF,您可以通过在`Print`方法中指定所需的DPI值来配置DPI(每英寸点数)以确保高分辨率输出。

我可以在非Windows平台上打印PDF文件吗?

目前,IronPDF的打印功能主要在Windows平台上受到支持。但是,该库功能多样,也可用于macOS、Android和iOS上的其他功能。

如何将PDF文档保存为图像文件?

您可以使用IronPDF中的`PrintToFile`方法将PDF文档保存为图像文件,该方法将PDF转换为位图图像并保存到磁盘上。

IronPDF是否支持PDF文档的双面打印?

是的,如果您的打印机具有此功能,IronPDF支持双面或双面打印。这可以通过`PrinterSettings`对象进行配置。

如何使用IronPDF打印PDF的多份副本?

您可以通过在IronPDF的PrinterSettings对象中设置`Copies`属性为所需份数来打印PDF的多份副本。

如果我的PDF打印不正确,我应该怎么办?

如果您的PDF打印不正确,请确保您安装了最新版本的IronPDF并检查您应用程序中的打印机设置。确认选择了正确的打印机,并查看任何错误信息以进一步排除故障。

IronPDF 在打印 PDF 时是否与 .NET 10 完全兼容?

是的。IronPDF 与 .NET 10 完全兼容,就像与之前的 .NET 版本一样。它支持在 .NET 10 项目中使用 `Print()`、`PrintToFile()` 和 `GetPrintDocument()` 等方法进行打印,无需任何特殊变通方法或配置更改。无论您构建的是桌面应用程序、Web 应用程序、微服务应用程序还是 .NET MAUI 应用程序,这一点都适用。

Chaknith Bin
软件工程师
Chaknith 在 IronXL 和 IronBarcode 工作。他在 C# 和 .NET 方面有着深厚的专业知识,帮助改进软件并支持客户。他从用户互动中获得的见解有助于更好的产品、文档和整体体验。
审核者
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 下载 16,154,058 | 版本: 2025.11 刚刚发布