跳至页脚内容
使用 IRONPRINT

C# 将 PDF 发送到打印机(分步教程)

PDF 意味着 "可携带文档格式"。 在许多情况下,开发人员需要在应用程序中以编程方式打印 PDF 文件。 在 C# 中,这可能是一个非常繁琐的任务,但感谢 IronPDF,这只需几行代码就非常容易实现。 该工具允许我们使用默认打印机设置打印 PDF 文档,也可以使用自定义打印选项。 在本教程中,您将学习如何使用 C# 语言打印 PDF。

本教程涵盖的主题

这里将涵盖以下主题:

  • IronPDF 库
  • 创建 C# 控制台项目
  • 安装 IronPDF
    1. NuGet 包管理器
    2. NuGet 包管理器控制台
    3. 使用 DLL 文件
  • 添加 IronPDF 命名空间
  • 打印 PDF 文档
    1. 创建 PDF 文档并打印 PDF
    2. 从 URL 创建 PDF 文档并打印
    3. 高级打印
  • 摘要

IronPDF。

IronPDF 是一个适用于 .NET 框架 的 PDF 库,使开发人员可以轻松创建 PDF 文件。 IronPDF 的渲染是 Google Chrome 桌面版本的"像素完美"。 IronPDF 只需一行代码即可轻松创建 PDF 文档。 它可以处理没有 Acrobat Reader 或其他 PDF 查看器的 PDF 文档。

IronPDF 可用于从 HTML 字符串、HTML 文件或 URL 创建 PDF 文件。 之后,它可以将这些文件发送到默认打印机进行打印。

A free trial of IronPDF is available.

IronPDF。 库的一些重要功能

  • 从 HTML 4 和 5、CSS 和 JavaScript 创建 PDF 文档
  • 从 URL 生成 PDF 文档
  • 将 PDF 打印到默认的物理打印机
  • 设置打印作业设置(例如打印特定页面等)
  • 使用自定义网络登录凭据、用户代理、代理、cookie、HTTP 标头、表单字段或变量加载网址,从而允许访问 HTML 登录表单后的网页
  • 读取和填写 PDF(可携带文档格式)表单字段数据
  • 从 PDF 文件中提取图像和文本
  • 数字签名 PDF 文档
  • 无需第三方库

1. 创建一个C#项目

本教程将使用 Visual Studio 2022,但您也可以使用早期版本。

  • 打开 Visual Studio 2022。
  • 创建新的 C# .NET 控制台项目。 选择 .NET Core 控制台应用程序。
How to Send PDFs to Printer Using C#, Figure 1: 控制台应用程序

控制台应用程序

  • 为项目命名,例如 DemoApp。
  • 我们将使用的 .NET 框架 6.0 是最新且最稳定的版本。 点击"创建"按钮。
How to Send PDFs to Printer Using C#, Figure 2: .NET 框架

.NET 框架

2. 安装IronPDF库

要安装 IronPDF 库,我们可以使用以下列出的方法:

2.1. NuGet 包管理器

我们可以从 NuGet 包管理器中安装 IronPDF C# .NET Core 库。

通过点击 工具 > NuGet 包管理器 > 为解决方案管理 NuGet 包 打开包管理器。

How to Send PDFs to Printer Using C#, Figure 3: 软件包管理器

软件包管理器

或者,右键点击 解决方案资源管理器 中的项目,然后点击 管理 NuGet 包。

How to Send PDFs to Printer Using C#, Figure 4: NuGet 包管理器 - 解决方案资源管理器

NuGet 包管理器 - 解决方案资源管理器

搜索 IronPDF。 选择 IronPDF 并单击安装。 库将开始安装。

How to Send PDFs to Printer Using C#, Figure 5: 安装IronPDF

安装IronPDF

2.2. NuGet 包管理器控制台

通过点击 工具 > NuGet 包管理器 > 包管理器控制台。 打开 NuGet 包管理器控制台

在命令行输入以下命令:

Install-Package IronPrint
How to Send PDFs to PRinter Using C#, Figure 6: NuGet 包管理器控制台

包管理器控制台

2.3. 使用 DLL 文件

在您的项目中使用 IronPDF 的另一种方法是从 IronPDF 库中添加 DLL 文件。 您可以从这个链接下载 DLL 文件。

  • 下载 DLL 压缩文件并将其解压到指定文件夹。
  • 在 Visual Studio 中打开项目。 在解决方案资源管理器中,右击"参考"并浏览 IronPDF DLL 文件。

2.4. 添加 IronPDF 命名空间

安装完成后,将 IronPDF 和 System.Drawing 命名空间添加到您的程序文件。

using IronPdf;
using System.Drawing;
using IronPdf;
using System.Drawing;
Imports IronPdf
Imports System.Drawing
$vbLabelText   $csharpLabel

注意:您必须将这些引用添加到您希望使用 IronPDF 功能的每个文件中。

IronPDF 已经安装并准备好了! 我们现在可以为我们的 .NET Core 应用创建第一个 PDF 文档并将其发送到默认打印机进行打印。 让我们通过代码示例来看看其中的一些方法。

3. 打印 PDF 文档

3.1. 从 HTML 创建并打印 PDF 文档

处理 HTML 字符串并将其转换为 PDF 格式非常容易。 然后可以使用 IronPDF 打印这个新创建的文件。 以下是轻松创建 PDF 的代码。

// Create an instance of ChromePdfRenderer
var chromePdfRenderer = new IronPdf.ChromePdfRenderer();

// Render any HTML fragment to a PDF document
using var pdfDocument = chromePdfRenderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1><p>This tutorial will help to print this text to a PDF file.</p>");

// Send the PDF to the default printer
pdfDocument.Print();

// Create a PrintDocument object that can be used for further configurations
System.Drawing.Printing.PrintDocument printDocument = pdfDocument.GetPrintDocument();
// Create an instance of ChromePdfRenderer
var chromePdfRenderer = new IronPdf.ChromePdfRenderer();

// Render any HTML fragment to a PDF document
using var pdfDocument = chromePdfRenderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1><p>This tutorial will help to print this text to a PDF file.</p>");

// Send the PDF to the default printer
pdfDocument.Print();

// Create a PrintDocument object that can be used for further configurations
System.Drawing.Printing.PrintDocument printDocument = pdfDocument.GetPrintDocument();
' Create an instance of ChromePdfRenderer
Dim chromePdfRenderer = New IronPdf.ChromePdfRenderer()

' Render any HTML fragment to a PDF document
Dim pdfDocument = chromePdfRenderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1><p>This tutorial will help to print this text to a PDF file.</p>")

' Send the PDF to the default printer
pdfDocument.Print()

' Create a PrintDocument object that can be used for further configurations
Dim printDocument As System.Drawing.Printing.PrintDocument = pdfDocument.GetPrintDocument()
$vbLabelText   $csharpLabel

此代码将创建一个包含在 RenderHtmlAsPdf 函数中传递的 HTML 内容的 PDF 文件。 该功能将 HTML 片段转换为 PDF 文档。

要使用 IronPDF 库生成 PDF 文件或 PDF 页,您必须熟悉 HTML 标签。 我们使用 Print 函数将 PDF 文件的输出发送到打印机。 打印机对话框将出现,允许您确认打印作业。

3.2. 从 URL 创建并打印 PDF 文档

您还可以使用 URL 创建 PDF 文档:

// Create an instance of ChromePdfRenderer
var chromePdfRenderer = new IronPdf.ChromePdfRenderer();

// Render a PDF from a URL
var pdfDocument = chromePdfRenderer.RenderUrlAsPdf("https://ironpdf.com/");

// Send the PDF to the default printer
pdfDocument.Print();

// Create a PrintDocument object that can be used for further configurations
System.Drawing.Printing.PrintDocument printDocument = pdfDocument.GetPrintDocument();
// Create an instance of ChromePdfRenderer
var chromePdfRenderer = new IronPdf.ChromePdfRenderer();

// Render a PDF from a URL
var pdfDocument = chromePdfRenderer.RenderUrlAsPdf("https://ironpdf.com/");

// Send the PDF to the default printer
pdfDocument.Print();

// Create a PrintDocument object that can be used for further configurations
System.Drawing.Printing.PrintDocument printDocument = pdfDocument.GetPrintDocument();
' Create an instance of ChromePdfRenderer
Dim chromePdfRenderer = New IronPdf.ChromePdfRenderer()

' Render a PDF from a URL
Dim pdfDocument = chromePdfRenderer.RenderUrlAsPdf("https://ironpdf.com/")

' Send the PDF to the default printer
pdfDocument.Print()

' Create a PrintDocument object that can be used for further configurations
Dim printDocument As System.Drawing.Printing.PrintDocument = pdfDocument.GetPrintDocument()
$vbLabelText   $csharpLabel

此处,一个 PDF 文件是从指定的 URL 创建的,然后被打印。

How to Send PDFs to PRinter Using C#, Figure 7: 打印从 URL 生成的 PDF 文件

打印从 URL 生成的 PDF 文件

4. 高级打印选项

IronPDF 多才多艺,能够处理打印功能,如 找到打印机和设置打印分辨率。

4.1 指定打印机

要指定打印机,您只需获取当前打印文档对象(使用 GetPrintDocument 方法),然后使用 PrinterSettings.PrinterName 属性。 您可以选择任何可用的打印机。

using (var printDocument = pdfDocument.GetPrintDocument())
{
    // Specify the printer name
    printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF";

    // Print the document
    printDocument.Print();
}
using (var printDocument = pdfDocument.GetPrintDocument())
{
    // Specify the printer name
    printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF";

    // Print the document
    printDocument.Print();
}
Using printDocument = pdfDocument.GetPrintDocument()
	' Specify the printer name
	printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF"

	' Print the document
	printDocument.Print()
End Using
$vbLabelText   $csharpLabel

在上面的代码示例中,选择"Microsoft Print to PDF"作为打印机。 有关设置特定打印设置的更多信息,可以在文档页面中找到。

4.2 设置打印机分辨率

您还可以设置打印 PDF 的分辨率。 分辨率指的是打印质量,其像素数量表示。 您可以使用 PDF 文档的 DefaultPageSettings.PrinterResolution 属性设置打印文档的分辨率。

// Set custom printer resolution
printDocument.DefaultPageSettings.PrinterResolution = new System.Drawing.Printing.PrinterResolution
{
    Kind = System.Drawing.Printing.PrinterResolutionKind.Custom,
    X = 1200,
    Y = 1200
};
// Set custom printer resolution
printDocument.DefaultPageSettings.PrinterResolution = new System.Drawing.Printing.PrinterResolution
{
    Kind = System.Drawing.Printing.PrinterResolutionKind.Custom,
    X = 1200,
    Y = 1200
};
' Set custom printer resolution
printDocument.DefaultPageSettings.PrinterResolution = New System.Drawing.Printing.PrinterResolution With {
	.Kind = System.Drawing.Printing.PrinterResolutionKind.Custom,
	.X = 1200,
	.Y = 1200
}
$vbLabelText   $csharpLabel

4.3 使用 C# 跟踪打印过程

在以下代码示例中,您将看到如何更改打印机名称、设置分辨率以及获取已打印页面的数量。

int printedPages;

using (var printDocument = pdfDocument.GetPrintDocument())
{
    // Specify the printer name
    printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF";

    // Set custom printer resolution
    printDocument.DefaultPageSettings.PrinterResolution = new System.Drawing.Printing.PrinterResolution
    {
        Kind = System.Drawing.Printing.PrinterResolutionKind.Custom,
        X = 1200,
        Y = 1200
    };

    // Track number of printed pages
    printedPages = 0;
    printDocument.PrintPage += (sender, args) => printedPages++;

    // Print the document
    printDocument.Print();
}
int printedPages;

using (var printDocument = pdfDocument.GetPrintDocument())
{
    // Specify the printer name
    printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF";

    // Set custom printer resolution
    printDocument.DefaultPageSettings.PrinterResolution = new System.Drawing.Printing.PrinterResolution
    {
        Kind = System.Drawing.Printing.PrinterResolutionKind.Custom,
        X = 1200,
        Y = 1200
    };

    // Track number of printed pages
    printedPages = 0;
    printDocument.PrintPage += (sender, args) => printedPages++;

    // Print the document
    printDocument.Print();
}
Dim printedPages As Integer

Using printDocument = pdfDocument.GetPrintDocument()
	' Specify the printer name
	printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF"

	' Set custom printer resolution
	printDocument.DefaultPageSettings.PrinterResolution = New System.Drawing.Printing.PrinterResolution With {
		.Kind = System.Drawing.Printing.PrinterResolutionKind.Custom,
		.X = 1200,
		.Y = 1200
	}

	' Track number of printed pages
	printedPages = 0
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: printDocument.PrintPage += (sender, args) => printedPages++;
	AddHandler printDocument.PrintPage, Sub(sender, args) printedPages
	printedPages += 1

	' Print the document
	printDocument.Print()
End Using
$vbLabelText   $csharpLabel

5. 总结

IronPDF 是一个用于处理 PDF 文档的完整解决方案。 它提供从不同格式转换为 PDF 的功能。 使用 IronPDF 库函数,PDF 文件的操作和格式化变得非常简单。 所有需要的仅是几行代码来创建和格式化 PDF 文件。它还能以程序方式打印 PDF。 通过将 PDF 发送到计算机的默认打印机来实现这一点。 我们可以向用户显示打印对话框窗口,也可以使用 Print 方法的重载进行静默打印。

A free trial of IronPDF is also available to test its full potential to generate and print PDF documents in your applications. 有关许可的更多信息,请访问这个链接

此外,当前的特别优惠允许您以两个产品的价格获得 Iron Software 的五个产品。

常见问题解答

如何在 C# 中以编程方式打印 PDF 文档?

您可以使用 IronPDF 在 C# 中以编程方式打印 PDF 文档。通过使用 Print 方法,您可以将 PDF 发送到默认或指定的打印机,并具有可定制的打印选项。

在 C# 中安装用于打印的 PDF 库的步骤是什么?

要安装 IronPDF 库,您可以使用 Visual Studio 中的 NuGet 包管理器、NuGet 包管理器控制台,或通过 DLL 文件添加库。

我可以使用此库从 HTML 创建 PDF 吗?

是的,IronPDF 允许您使用 RenderHtmlAsPdf 方法从 HTML 创建 PDF。这可以将 HTML、CSS 和 JavaScript 转换为 PDF 文档。

如何使用此库将 PDF 发送到特定的打印机?

要将 PDF 发送到特定打印机,您可以在 IronPDF 中设置 PrintDocument 对象的 PrinterSettings.PrinterName 属性为所需的打印机名称。

此库支持哪些高级打印选项?

IronPDF 支持高级打印选项,例如指定打印机设置、调整打印分辨率和跟踪已打印页数。

使用此 PDF 库可以设置自定义打印分辨率吗?

是的,您可以使用 IronPDF 中的 PrintDocument 对象的 DefaultPageSettings.PrinterResolution 属性设置自定义打印分辨率。

如何使用此库将 URL 渲染为 PDF?

您可以使用 IronPDF 的 RenderUrlAsPdf 方法将 URL 渲染为 PDF,这使您可以将网页转换为 PDF 文档。

这个库提供免费试用吗?

是的,IronPDF 提供免费试用,允许用户探索其在生成和打印 PDF 文档方面的功能。

我可以使用此库跟踪已打印的页数吗?

是的,IronPDF 允许您通过访问 PrintDocument 对象的属性在打印作业期间跟踪已打印的页数。

这个 PDF 打印库兼容哪些平台?

IronPDF 兼容多个平台,包括 Windows、macOS、Android 和 iOS,使其适用于不同的开发环境。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。