如何在C#中打印PDF文件

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

查克尼特·宾

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

IronPDF支持通过一个方法调用快速编程打印到物理打印机,使您可以打印多个PDF文件。 打印机的分辨率也可以通过可配置的水平和垂直DPI来指定。 使用接受 Microsoft PrinterSettingsPrintController 的方法,以获得对 PDF 打印过程的更多控制。


开始使用IronPDF

立即在您的项目中开始使用IronPDF,并享受免费试用。

第一步:
green arrow pointer


打印 PDF 文件示例

通过 PdfDocument 对象可以使用 Print 方法,这使您可以打印新创建和现有的 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")
VB   C#
打印队列

打印机分辨率

您可以通过将所需的 DPI 值提供给 Print 方法来指定打印 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")
VB   C#

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


打印到文件

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("")
VB   C#

探索打印PDF文档设置

要自定义打印选项,请使用 GetPrintDocument 方法,该方法接受 Microsoft PrinterSettingsPrintController 对象。 此方法返回当前打印文档对象。 PrinterSettings允许您配置选项,如页面范围和打印机选择,而PrintController则可以控制打印过程,包括处理异常、进度报告、打印对话框、打印预览及其他相关任务。 代码示例下方提供了PrinterSettings选项的详细描述。

: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()
VB   C#
  • CanDuplex:表示打印机是否支持双面打印(双面)打印。 如果为真,则可以实现双面打印; 否则,它就无法做到。
  • 整理:指定是否应整理多个PDF文件或PDF文档的副本。(有条不紊)打印时。 当为真时,打印机会整理副本; 当为 false 时,它不会。
  • 副本:设置要打印的PDF文档的副本数量。 它确定将打印多少份相同的文档。
  • DefaultPageSettings:表示打印机的默认页面设置,包括纸张尺寸、边距和方向。
  • 双面:指定双面打印(双面)要使用的打印模式。 选项包括 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:指示是否打印到文件而不是物理打印机。 当为真时,您可以使用PrintFileName指定文件路径。
  • SupportsColor:指示打印机是否支持彩色打印。 如果为真,则支持彩色打印; 否则,它仅限于黑白色(单铬)打印。

    最后,要将默认打印机配置为打印 PDF,可以进入机器设置的 "打印机和扫描仪 "部分。

Chaknith related to 探索打印PDF文档设置

查克尼特·宾

软件工程师

Chaknith 是开发者中的福尔摩斯。他第一次意识到自己可能在软件工程方面有前途,是在他出于乐趣做代码挑战的时候。他的重点是 IronXL 和 IronBarcode,但他为能帮助客户解决每一款产品的问题而感到自豪。Chaknith 利用他从直接与客户交谈中获得的知识,帮助进一步改进产品。他的轶事反馈不仅仅局限于 Jira 票据,还支持产品开发、文档编写和市场营销,从而提升客户的整体体验。当他不在办公室时,他可能会在学习机器学习、编程或徒步旅行。