C# 打印 PDF 文檔
您可以輕鬆地在 .NET 應用程式中,使用 Visual Basic 或 C# 代碼來打印 PDF。 這個教學將逐步介紹如何使用 C# 打印 PDF 功能來進行程式化打印。
如何在C#中列印PDF檔案
- 下載 Print to PDF C# 庫
- 從您的電腦選擇PDF文件
- 選擇特定的印表機進行列印並設置解析度
- 檢查您的印表機輸出的 PDF 文件
- 使用C#追踪您的打印流程
立即開始在您的專案中使用IronPDF,並享受免費試用。
查看 IronPDF 上 Nuget 快速安裝和部署。已被下載超過800萬次,它正用C#改變PDF。
Install-Package IronPdf
請考慮安裝 IronPDF DLL 直接下載並手動安裝到您的專案或GAC表單: IronPdf.zip
手動安裝到您的項目中
下載DLL創建 PDF 和列印
您可以靜默地直接將 PDF 文件發送到列印機,或創建一個 System.Drawing.Printing.PrintDocument 對象,可以被使用並傳送到 GUI 列印對話框。
以下代碼可用於兩種選項:
:path=/static-assets/pdf/content-code-examples/how-to/csharp-print-pdf-create-and-print-pdf.cs
using IronPdf;
using System.Threading.Tasks;
// Create a new PDF and print it
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
// Print PDF from default printer
await pdf.Print();
// For advanced silent real-world printing options, use PdfDocument.GetPrintDocument
// Remember to add an assembly reference to System.Drawing.dll
System.Drawing.Printing.PrintDocument PrintDocYouCanWorkWith = pdf.GetPrintDocument();
Imports IronPdf
Imports System.Threading.Tasks
' Create a new PDF and print it
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
' Print PDF from default printer
Await pdf.Print()
' For advanced silent real-world printing options, use PdfDocument.GetPrintDocument
' Remember to add an assembly reference to System.Drawing.dll
Dim PrintDocYouCanWorkWith As System.Drawing.Printing.PrintDocument = pdf.GetPrintDocument()
高級列印
IronPDF 非常擅長處理高級列印功能,例如查找列印機名稱或設定它以及設定列印機解析度。
指定打印機名稱
要指定打印機名稱,您只需要獲取當前的打印文件對象 (使用 取得打印文件 PDF文件的方法)然後使用 PrinterSettings.PrinterName 屬性,如下所示:
:path=/static-assets/pdf/content-code-examples/how-to/csharp-print-pdf-specify-printer-name.cs
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");
// Get PrintDocument object
var printDocument = pdf.GetPrintDocument();
// Assign the printer name
printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF";
// Print document
printDocument.Print();
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Get PrintDocument object
Private printDocument = pdf.GetPrintDocument()
' Assign the printer name
printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF"
' Print document
printDocument.Print()
設定印表機解析度
解析度指的是要列印或顯示的像素數量,取決於您的輸出。您可以透過 IronPDF 設定列印解析度。 DefaultPageSettings.PrinterResolution PDF文件的屬性。以下是一個簡單的演示:
:path=/static-assets/pdf/content-code-examples/how-to/csharp-print-pdf-specify-printer-resolution.cs
using IronPdf;
using System.Drawing.Printing;
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");
// Get PrintDocument object
var printDocument = pdf.GetPrintDocument();
// Set printer resolution
printDocument.DefaultPageSettings.PrinterResolution = new PrinterResolution
{
Kind = PrinterResolutionKind.Custom,
X = 1200,
Y = 1200
};
// Print document
printDocument.Print();
Imports IronPdf
Imports System.Drawing.Printing
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Get PrintDocument object
Private printDocument = pdf.GetPrintDocument()
' Set printer resolution
printDocument.DefaultPageSettings.PrinterResolution = New PrinterResolution With {
.Kind = PrinterResolutionKind.Custom,
.X = 1200,
.Y = 1200
}
' Print document
printDocument.Print()
如您所見,我已將解析度設為自定義等級:垂直 1200 和水平 1200。
PrintToFile 方法
PdfDocument.PrintToFile
方法允許您將 PDF 列印到文件中。您只需提供輸出文件路徑並指定是否希望查看預覽。下面的代碼將在不包含預覽的情況下列印到指定文件:
:path=/static-assets/pdf/content-code-examples/how-to/csharp-print-pdf-printtofile.cs
using IronPdf;
using System.Threading.Tasks;
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");
await pdf.PrintToFile("PathToFile", false);
Imports IronPdf
Imports System.Threading.Tasks
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
Await pdf.PrintToFile("PathToFile", False)
使用 C# 追踪打印过程
在使用 IronPDF 的情況下,C# 的魅力在于跟踪打印页面或任何与打印相关的内容实际上非常简单。 在接下来的示例中,我将演示如何更改打印机的名称、分辨率以及如何获取已打印页面的数量。
:path=/static-assets/pdf/content-code-examples/how-to/csharp-print-pdf-trace-printing-process.cs
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");
// Get PrintDocument object
var printDocument = pdf.GetPrintDocument();
// Subscribe to the PrintPage event
var printedPages = 0;
printDocument.PrintPage += (sender, args) => printedPages++;
// Print document
printDocument.Print();
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Get PrintDocument object
Private printDocument = pdf.GetPrintDocument()
' Subscribe to the PrintPage event
Private printedPages = 0
Private printDocument.PrintPage += Sub(sender, args) printedPages++
' Print document
printDocument.Print()