如何在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 PrinterSettings 和 PrintController 的方法,以便对 PDF 打印过程进行更多控制。


开始使用IronPDF

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

第一步:
green arrow pointer


打印 PDF 文件示例

Print 方法可以从 PdfDocument 对象访问。 使用此方法可以打印新渲染的和现有的PDF文件。 调用 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)第二个是垂直(y).

: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 PrinterSettingsPrintControllerGetPrintDocument 方法返回当前打印文档对象。 以下代码示例中描述了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()
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 票据,还支持产品开发、文档编写和市场营销,从而提升客户的整体体验。当他不在办公室时,他可能会在学习机器学习、编程或徒步旅行。