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 leise an einen Drucker senden oder ein System.Drawing.Printing.PrintDocument-Objekt erstellen, 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 anzugeben, müssen Sie lediglich das aktuelle Druckdokumentobjekt abrufen (mit der Verwendung der GetPrintDocument-Methode für PDF-Dokumente des PDF-Dokuments) und dann die PrinterSettings.PrinterName-Eigenschaft verwenden, 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 Druckens festlegen, indem Sie die DefaultPageSettings.PrinterResolution-Eigenschaft des PDF-Dokuments verwenden. 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

Die Methode PdfDocument.PrintToFile ermöglicht es Ihnen, das PDF in eine Datei zu drucken. Sie geben einfach den Ausgabepfad 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.