C# PDF-Dokumente drucken

Chaknith Bin
Chaknith Bin
25. Januar 2023
Aktualisiert 20. Oktober 2024
Teilen Sie:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Sie können ein PDF in .NET-Anwendungen mit Hilfe von Visual Basic- oder C#-Code problemlos drucken. In diesem Tutorial erfahren Sie, wie Sie die C#-Funktionen zum Drucken von PDF-Dateien programmgesteuert nutzen können.



Beginnen Sie noch heute mit der Verwendung von IronPDF in Ihrem Projekt mit einer kostenlosen Testversion.

Erster Schritt:
green arrow pointer

PDF erstellen und drucken

Sie können ein PDF-Dokument direkt und geräuschlos an einen Drucker senden oder eineSystem.Drawing.Printing.PrintDocument objekt, mit dem gearbeitet werden kann und das an GUI-Druckdialoge gesendet werden kann.

Der folgende Code kann für beide Optionen verwendet werden:

: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()
$vbLabelText   $csharpLabel

Fortgeschrittener Druck

IronPDF ist durchaus in der Lage, fortgeschrittene Druckfunktionen wie die Suche nach dem Druckernamen oder dessen Einstellung und die Einstellung der Druckerauflösung zu bewältigen.

Druckername angeben

Um den Druckernamen festzulegen, müssen Sie lediglich das aktuelle Druckdokumentobjekt abrufen(mit der Verwendung desGetPrintDocument-Methode für PDF-Dokumente des PDF-Dokuments)verwenden Sie dann die Eigenschaft PrinterSettings.PrinterName wie folgt:

: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()
$vbLabelText   $csharpLabel

Druckerauflösung einstellen

Die Auflösung bezieht sich auf die Anzahl der Pixel, die gedruckt oder angezeigt werden, je nach Ausgabe. Sie können die Auflösung Ihres Drucks mit Hilfe der Optioneigenschaft DefaultPageSettings.PrinterResolution des PDF-Dokuments. Hier ist eine sehr schnelle Demonstration:

: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()
$vbLabelText   $csharpLabel

Wie Sie sehen können, habe ich die Auflösung auf ein benutzerdefiniertes Niveau eingestellt: 1200 vertikal und 1200 horizontal.

PrintToFile-Methode

Mit der Methode PdfDocument.PrintToFile können Sie das PDF-Dokument in eine Datei drucken. Sie geben einfach den Ausgabedateipfad an und legen fest, ob Sie eine Vorschau sehen möchten oder nicht. Der unten stehende Code wird in die angegebene Datei gedruckt, ohne eine Vorschau zu enthalten:

: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)
$vbLabelText   $csharpLabel

Verfolgung von Druckvorgängen mit C

Das Schöne an C# in Verbindung mit IronPDF ist, dass es eigentlich ganz einfach ist, den Überblick über gedruckte Seiten oder alles, was mit Drucken zu tun hat, zu behalten. Im nächsten Beispiel werde ich zeigen, wie man den Namen des Druckers und die Auflösung ändert und wie man die Anzahl der gedruckten Seiten ermittelt.

: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()
$vbLabelText   $csharpLabel
Chaknith Bin
Software-Ingenieur
Chaknith arbeitet an IronXL und IronBarcode. Er hat tiefgehende Expertise in C# und .NET und hilft, die Software zu verbessern und Kunden zu unterstützen. Seine Erkenntnisse aus Benutzerinteraktionen tragen zu besseren Produkten, Dokumentation und einem insgesamt besseren Erlebnis bei.