Dokument drucken mit einem Druckdialog in C
Der Druckdialog ist das standardmäßige Betriebssystemfenster, das es Benutzern ermöglicht, einen Drucker auszuwählen, die Anzahl der Kopien festzulegen, einen Seitenbereich zu wählen und Papieroptionen vor dem Drucken anzupassen. Für Desktop-Anwendungen, bei denen Benutzer die Kontrolle darüber benötigen, wie und wo ihre Dokumente gedruckt werden, ist das Anzeigen dieses Dialogs das erwartete Verhalten.
IronPrint bietet eine einzelne Methode — Printer.ShowPrintDialog() — die den nativen Druckdialog anzeigt, Benutzerauswahlen anwendet und das Dokument an den ausgewählten Drucker sendet. Wir installieren ein NuGet-Paket und schreiben eine Zeile Code.
Schnellstart: Drucken mit einem Dialog
- Installieren Sie IronPrint über NuGet:
Install-Package IronPrint - Fügen Sie
using IronPrint;der Datei hinzu - Rufen Sie
Printer.ShowPrintDialog("filepath")auf, um den nativen Druckdialog zu öffnen - (Optional) Übergeben Sie ein
PrintSettingsObjekt, um die Dialogstandards voreinzustellen - Der Benutzer wählt Drucker, Kopien und Optionen, dann klickt er auf Drucken
-
Installieren Sie IronPrint mit NuGet Package Manager
PM > Install-Package IronPrint -
Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
using IronPrint; // Display the print dialog and print the document Printer.ShowPrintDialog("document.pdf"); -
Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronPrint in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
Minimaler Arbeitsablauf (5 Schritte)
- Installieren Sie die IronPrint C#-Druckbibliothek
- Rufen Sie `Printer.ShowPrintDialog("filepath")` auf
- Der Benutzer wählt Drucker, Kopien und Seitenbereich
- Klicken Sie auf Drucken, um das Dokument an den ausgewählten Drucker zu senden
- Überprüfen Sie, ob das Dokument mit den ausgewählten Einstellungen gedruckt wird
Wie funktioniert der Druckdialog in C#?
Die Printer.ShowPrintDialog() Methode öffnet den nativen Druckdialog des Betriebssystems. Der Benutzer sieht das vollständige Set an Druckoptionen — Druckerauswahl, Anzahl der Kopien, Seitenbereich, Ausrichtung und Papiergröße — und klickt auf Drucken, um den Auftrag zu senden, oder auf Abbrechen, um den Dialog ohne Druck zu schließen.
Hinter den Kulissen erfordert der native .NET-Ansatz das Erstellen einer System.Windows.Forms.PrintDialog Instanz, das Verkabeln mit einem PrintDocument, das Handhaben des PrintPage Ereignisses, um Inhalte auf die Druckgrafikoberfläche zu zeichnen, das Überprüfen des DialogResult und dann das Aufrufen von PrintDocument.Print(). Diese Einrichtung umfasst typischerweise 15–25 Codezeilen. Es enthält auch keine integrierte PDF- oder Bildwiedergabe — wenn man ein PDF über den nativen Dialog drucken möchte, muss man es zuerst in zeichbare Seiten parsen, was eine weitere Bibliothek erfordert.
IronPrint verarbeitet die gesamte Pipeline in einem Aufruf:
:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-show-print-dialog-open-and-print.cs
using IronPrint;
// Open the dialog, let the user configure settings, and print
Printer.ShowPrintDialog("quarterly-report.pdf");
Imports IronPrint
' Open the dialog, let the user configure settings, and print
Printer.ShowPrintDialog("quarterly-report.pdf")
Die Methode akzeptiert einen Dateipfad als string oder Rohdateidaten als byte[]. IronPrint erkennt das Dokumentformat, rendert es durch die entsprechende Engine und präsentiert den Dialog. Wenn der Benutzer bestätigt, wird das Dokument mit den ausgewählten Einstellungen gedruckt. Das Druckdokument-Tutorial erklärt den gesamten Drucklebenszyklus ausführlicher.
Wie konfiguriere ich Dialogeinstellungen vor?
Wir können vor dem Öffnen des Dialogs Standardwerte festlegen, indem wir ein PrintSettings Objekt erstellen und es als zweiten Parameter übergeben. Der Dialog wird mit diesen Werten voreingestellt geöffnet, und der Benutzer kann sie unverändert akzeptieren oder jede Einstellung überschreiben.
:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-preconfigure-dialog-settings.cs
using IronPrint;
// Pre-configure defaults for the dialog
var settings = new PrintSettings
{
PrinterName = "HP LaserJet Pro",
PaperSize = PaperSize.A4,
PaperOrientation = PaperOrientation.Portrait,
Dpi = 300,
NumberOfCopies = 2,
Grayscale = false
};
// Open dialog with pre-filled settings
Printer.ShowPrintDialog("invoice.pdf", settings);
Imports IronPrint
' Pre-configure defaults for the dialog
Dim settings As New PrintSettings With {
.PrinterName = "HP LaserJet Pro",
.PaperSize = PaperSize.A4,
.PaperOrientation = PaperOrientation.Portrait,
.Dpi = 300,
.NumberOfCopies = 2,
.Grayscale = False
}
' Open dialog with pre-filled settings
Printer.ShowPrintDialog("invoice.pdf", settings)
Dies ist nützlich, wenn die Anwendung den wahrscheinlichen Drucker oder das Papierformat im Voraus kennt. Zum Beispiel kann ein Point-of-Sale-System, das immer Quittungen auf einem bestimmten Thermodrucker druckt, PrinterName standardmäßig auf dieses Gerät einstellen. Der Benutzer hat weiterhin die Möglichkeit, es im Dialog zu ändern.
Um herauszufinden, welche Drucker auf dem System verfügbar sind, rufen wir Printer.GetPrinterNames() auf, das eine List<string> aller installierten Drucker zurückgibt. Ebenso gibt Printer.GetPrinterTrays() verfügbare Papierschächte für einen bestimmten Drucker zurück.
Die vollständige Liste der konfigurierbaren Eigenschaften umfasst PrinterName, PaperSize, PaperOrientation, Dpi, NumberOfCopies, Grayscale, PaperMargins, Flatten (für PDF-Formularfelder) und Tray. Das Druckeinstellungen-How-To deckt jede Eigenschaft mit Codebeispielen ab. Eine nicht in PrintSettings gesetzte Eigenschaft wird auf die Standardkonfiguration des ausgewählten Druckers zurückgesetzt.
Wie zeige ich den Dialog asynchron an?
Die Printer.ShowPrintDialogAsync() Methode gibt einen Task zurück, wodurch sie mit await kompatibel ist. Dies verhindert, dass der Dialog den UI-Thread blockiert — unerlässlich für WPF, MAUI und jede Anwendung, bei der eine eingefrorene Oberfläche eine schlechte Benutzererfahrung erzeugt.
:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-show-print-dialog-async.cs
using IronPrint;
// Non-blocking dialog — the UI remains responsive
await Printer.ShowPrintDialogAsync("report.pdf");
Imports IronPrint
' Non-blocking dialog — the UI remains responsive
Await Printer.ShowPrintDialogAsync("report.pdf")
ShowPrintDialogAsync() akzeptiert dieselben Parameter wie die synchrone Version: einen Dateipfad oder ein Byte-Array sowie ein optionales PrintSettings Objekt. Das asynchrone Muster folgt dem gleichen Task-basierten Asynchronen Muster, das in der modernen .NET-Entwicklung verwendet wird.
IronPrint funktioniert über WinForms, WPF, MAUI und Konsolenanwendungen hinweg. Das Aussehen des Dialogs passt sich der Host-Plattform und der OS-Version an, sodass der Benutzer immer das native Druckfenster sieht, das er erwartet.
Wann sollte ich einen Dialog vs. Stiller Druckverwenden?
Die Wahl hängt davon ab, ob der Benutzer die Kontrolle über den Druckauftrag benötigt.
| Kriterien | Drucken mit Dialog | Stiller Druck |
|---|---|---|
| Benutzerinteraktion | Der Benutzer wählt Drucker, Kopien, Seitenbereich | Keine Interaktion — druckt sofort |
| Am besten geeignet für | Desktop-Apps, einmalige Drucke, benutzerorientierte Funktionen | Batch-Jobs, Hintergrunddienste, Kiosk-Apps |
| Auswahl des Druckers | Benutzer wählt über Dialog | Programmgesteuert über PrintSettings festgelegt |
| IronPrint-Methode | Printer.ShowPrintDialog() |
Printer.Print() |
| Async-Variante | ShowPrintDialogAsync() |
PrintAsync() |
Verwenden Sie den Dialog, wenn Benutzer Einstellungen vor dem Drucken überprüfen oder ändern müssen — Berichtsexporte, Rechnungsdrucke oder jeder Fall, bei dem der falsche Drucker eine verschwendete Seite verursacht. Verwenden Sie silent printing, wenn die Anwendung den gesamten Job steuert und keine menschliche Entscheidung erforderlich ist. Das Druckdokument-Tutorial zeigt beide Ansätze Seite an Seite.
Welche Dateiformate unterstützt der Druckdialog?
Printer.ShowPrintDialog() unterstützt dieselben Formate wie silent printing: PDF, PNG, TIFF, JPEG, GIF, HTML und BMP. Wir übergeben den Dateipfad unabhängig vom Format, und IronPrint kümmert sich um das Rendering und die Kommunikation mit dem Druckerspooler. Dateidaten als byte[] werden ebenfalls akzeptiert, was nützlich ist, wenn das Dokument im Speicher generiert oder aus einer Datenbank abgerufen wird.
:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-print-dialog-image-and-byte-array.cs
using IronPrint;
// Print an image with the dialog
Printer.ShowPrintDialog("product-photo.png");
// Print from a byte array
byte[] reportData = File.ReadAllBytes("monthly-report.pdf");
Printer.ShowPrintDialog(reportData);
Imports IronPrint
' Print an image with the dialog
Printer.ShowPrintDialog("product-photo.png")
' Print from a byte array
Dim reportData As Byte() = File.ReadAllBytes("monthly-report.pdf")
Printer.ShowPrintDialog(reportData)
Die Codebeispiele-Seite zeigt zusätzliche formatspezifische Szenarien. Für PDF-spezifische Workflows — ein PDF generieren und es sofort drucken — passt IronPDF natürlich zu IronPrint. Der IronPrint vs. IronPDF Vergleich erklärt, wann man welches verwendet.
Nächste Schritte
Das Drucken mit einem Dialog reduziert sich auf zwei Methoden: Printer.ShowPrintDialog() für synchrone Aufrufe und Printer.ShowPrintDialogAsync() für nicht blockierende Ausführung. Konfigurieren Sie Standardwerte mit PrintSettings vor und lassen Sie den Benutzer von dort aus anpassen. Beide Methoden unterstützen alle von IronPrints Dokumentformate und arbeiten in WinForms-, WPF-, MAUI- und Konsolenprojekten.
Erkunden Sie die IronPrint Tutorials für vollständige Durchgänge, die Printer-Klassen-API-Referenz für jede verfügbare Methode oder das Druckeinstellungen-How-To für erweiterte Konfiguration. Der Changelog verfolgt die neuesten Verbesserungen und neuen Funktionen.
Starten Sie eine kostenlose 30-tägige Testversion, um Dialogdruck in einem Live-Projekt zu testen – keine Kreditkarte erforderlich. Wenn Sie bereit sind, zu verschicken, sehen Sie sich die Lizenzierungsoptionen ab 749 $ an.

