使用IRONPRINT

C# 打印 PDF 到特定打印机(代码示例教程)

查克尼特·宾
查克尼特·宾
2022年九月1日
分享:

在很多情况下,开发人员可能需要直接从应用程序中打印 PDF 文档。 当用户想打印多个PDF文件或使用除默认打印机以外的特定打印机名称时,此任务有时会显得复杂。 如今,有多种方法可以帮助我们打印 PDF 文件。 其中有些需要付费,有些性能不稳定,有些难以实现。

IronPDF for .NET 提供了一组可用于以编程方式创建 PDF 文件的类。 这些类位于 IronPDF.Core 程序集中,旨在方便使用任何 .NET 语言,包括 C#、VB.NET、F# 等。该库提供了创建 PDF 文档、操作现有 PDF、阅读 PDF、打印 PDF 以及以编程方式创建 PDF 表单的多种功能。

让我们来看看打印 PDF 文件的一些示例代码片段。

安装 IronPDF

首先,安装 IronPDF 库。 为此,请进入软件包管理器控制台并编写以下命令。

Install-Package IronPrint

C# 打印 PDF 到特定打印机(代码示例教程),图 1:通过包管理器控制台安装包

通过包管理器控制台安装软件包

下一步是先创建一个 PDF 文档。如果不想创建新文档,也可以直接加载现有的 PDF 文档。 让我们创建一个 PDF 文档。

使用 URL 创建 PDF 文档

让我们使用 URL 创建一个 PDF 文档。 IronPDF 为此提供了两种功能。 RenderUrlAsPdfRenderUrlAsPdfAsync。 这两个函数具有相同的功能,只是RenderUrlAsPdfAsync提供了异步功能。

以下代码片段将从 URL 创建 PDF 文件。

var renderer = new IronPdf.ChromePdfRenderer();
PdfDocument doc = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
var renderer = new IronPdf.ChromePdfRenderer();
PdfDocument doc = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
Dim renderer = New IronPdf.ChromePdfRenderer()
Dim doc As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF")
$vbLabelText   $csharpLabel

使用 HTML 字符串创建 PDF 文档

也可以使用 HTML 字符串创建 PDF 文档。 IronPDF 提供了两种使用 HTML 字符串创建 PDF 文件的方法:RenderHtmlAsPdfRenderHtmlAsPdfAsync。 这些方法彼此相似,唯一的区别是RenderHtmlAsPdfAsync用于异步操作。

以下代码片段将从 HTML 创建 PDF 文件。

IronPdf.ChromePdfRenderer renderer = new IronPdf.ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(@"<h1>My PDF File</h1> <p>This is sample PDF document created to demonstrate the PDF File generation using HTML string</p>");
IronPdf.ChromePdfRenderer renderer = new IronPdf.ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(@"<h1>My PDF File</h1> <p>This is sample PDF document created to demonstrate the PDF File generation using HTML string</p>");
Dim renderer As New IronPdf.ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>My PDF File</h1> <p>This is sample PDF document created to demonstrate the PDF File generation using HTML string</p>")
$vbLabelText   $csharpLabel

将 PDF 文件打印到特定打印机

有多种情况需要使用特定打印机打印 PDF 文件。 此任务可以简单地通过使用PrinterSettings.PrinterName属性来完成。 将您的打印机名称设置为该属性。 让我们快速演示一下如何用 C# 将 PDF 文档打印到特定打印机。

var printDoc = pdf.GetPrintDocument();
printDoc.PrinterSettings.PrinterName = "myPrinter";
var printDoc = pdf.GetPrintDocument();
printDoc.PrinterSettings.PrinterName = "myPrinter";
Dim printDoc = pdf.GetPrintDocument()
printDoc.PrinterSettings.PrinterName = "myPrinter"
$vbLabelText   $csharpLabel

pdf 指的是刚刚从 URL 创建的 PDF 文件。

GetPrintDocument 返回一个 PrintDocument,允许对将 PDF 发送到打印机进行精细控制。

然后,可根据需要指定打印机名称。

打印对话

假设用户需要使用 Word 文档或 Adobe Acrobat 中的用户界面对话框选择所有打印机设置。 IronPDF 的功能可以通过向Print 函数传递一个参数来向用户显示打印 GUI 对话框,如下所示。

pdf.Print(true);
pdf.Print(true);
pdf.Print(True)
$vbLabelText   $csharpLabel

只需将 true 值传递给 Print 函数的参数即可,因为默认情况下该值为 false。 它展示了显示 GUI 打印对话是多么容易。 pdf.Print() 函数打印到默认打印机。

指定份数

如果需要打印一份文件的多份副本。 这可以通过设置PrinterSettings.Copies属性轻松实现。 下面的示例代码演示了这一点。

var printDoc = pdf.GetPrintDocument();
printDoc.PrinterSettings.Copies = 5;
var printDoc = pdf.GetPrintDocument();
printDoc.PrinterSettings.Copies = 5;
Dim printDoc = pdf.GetPrintDocument()
printDoc.PrinterSettings.Copies = 5
$vbLabelText   $csharpLabel

这里,pdf 是当前的打印文档对象。

选择页面范围以打印 PDF 文件

通常情况下,用户可能不想打印完整的文档。 在这种情况下,指定PrinterSettings.FromPage PrinterSettings.ToPage属性将有助于完成任务。

以下代码演示了 IronPDF 这一功能的使用。

var printDoc = pdf.GetPrintDocument();
printDoc.PrinterSettings.FromPage = 3;
printDoc.PrinterSettings.ToPage = 3;
var printDoc = pdf.GetPrintDocument();
printDoc.PrinterSettings.FromPage = 3;
printDoc.PrinterSettings.ToPage = 3;
Dim printDoc = pdf.GetPrintDocument()
printDoc.PrinterSettings.FromPage = 3
printDoc.PrinterSettings.ToPage = 3
$vbLabelText   $csharpLabel

第一行代码将设置需要打印的第一页的页码。 第二行将设置打印文档的最后一页。

整理属性

IronPdf 还提供高级打印功能--"整理 "就是其中之一。

打印时整理是指如果要打印多页文档的多个副本,则在打印第二个副本之前,将打印每个副本的所有页面。 该属性可根据我们的选择设置为 true 或 false。

var printDoc = pdf.GetPrintDocument();
printDoc.PrinterSettings.Collate = false;
var printDoc = pdf.GetPrintDocument();
printDoc.PrinterSettings.Collate = false;
Dim printDoc = pdf.GetPrintDocument()
printDoc.PrinterSettings.Collate = False
$vbLabelText   $csharpLabel

例如,如果校对属性设置为 false,则会在打印下一页之前打印给定页面的所有必要副本。 换句话说,将此属性设置为 false 将提供与 collate 属性相反的功能。

获取论文来源

还可以获得打印机的纸张来源。

var paperSources = pdf.GetPrintDocument().PrinterSettings.PaperSources;
var paperSources = pdf.GetPrintDocument().PrinterSettings.PaperSources;
Dim paperSources = pdf.GetPrintDocument().PrinterSettings.PaperSources
$vbLabelText   $csharpLabel

结论

IronPDF 为开发需要打印功能的 .NET 应用程序提供了所有必要的功能。 打印 PDF 文件有多种选择。 使用最适合您需求的任意选项,还可以打印多个 PDF 文件。

摘要

本教程演示了如何使用 IronPDF 库将特定打印机直接打印为 PDF - 该库可免费用于开发并提供高性能级别。 有关 IronPDF 的更多 PDF 打印功能,请点击此示例页面

此外,IronPDF 还能够在 PDF 中渲染图表添加条形码通过密码增强安全性水印处理,只需几行代码即可实现。

还有其他许多有用的库,如处理 Excel 文档的 IronXL、处理条形码的 IronBarcode 和处理 OCR 的 IronOCR。 您目前可以通过购买完整的Iron Suite,以仅需两套价格获得全部五个库。请访问许可页面,了解更多详细信息。

查克尼特·宾
软件工程师
Chaknith 负责 IronXL 和 IronBarcode 的工作。他在 C# 和 .NET 方面拥有深厚的专业知识,帮助改进软件并支持客户。他从用户互动中获得的洞察力,有助于提升产品、文档和整体体验。
< 前一页
如何用VB.NET打印PDF的分步教程
下一步 >
在C#中如何无对话框打印PDF文件

准备开始了吗? 版本: 2025.4 刚刚发布

查看许可证 >