Wie man PDFs in C# glättet und druckt
Die PrintSettings-Klasse von IronPrint beinhaltet eine Flatten-Eigenschaft, die alle interaktiven Formularfelder, Anmerkungen und Bildebenen beim Druckzeitpunkt in statischen Inhalt umwandelt. Wir setzen Flatten = true auf unser PrintSettings-Objekt, und IronPrint übernimmt den Rest — keine separate PDF-Manipulationsbibliothek oder Zwischenspeicherung erforderlich.
Dieser Leitfaden behandelt, wann und wie man PDFs vor dem Drucken glätten sollte, inklusive funktionierendem C#-Code für synchrone, kombinierte Einstellungen und asynchrone Workflows.
Schnellstart: PDFs vor dem Drucken glätten
- Installieren Sie IronPrint über NuGet:
Install-Package IronPrint - Fügen Sie
using IronPrint;zur Datei hinzu - Erstellen Sie ein
PrintSettings-Objekt - Setzen Sie
Flattenauftrue - Übergeben Sie Einstellungen an
Printer.Print()oderPrinter.PrintAsync()
-
Installieren Sie IronPrint mit NuGet Package Manager
PM > Install-Package IronPrint -
Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
using IronPrint; // Flatten and print a PDF with form fields Printer.Print("form-document.pdf", new PrintSettings { Flatten = true }); -
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
- Erstellen Sie ein `PrintSettings`-Objekt
- Setzen Sie `Flatten` auf `true`
- Übergeben Sie Einstellungen an `Printer.Print()`
- Überprüfen Sie, ob das gedruckte Ergebnis geglättete Formularfelder enthält
Wie glätte ich ein PDF vor dem Drucken in C#?
Wir glätten ein PDF zur Druckzeit, indem wir die Flatten-Eigenschaft auf true eines PrintSettings-Objekts setzen. Wir übergeben dann dieses Objekt an eine der Druckmethoden von IronPrint.
:path=/static-assets/print/content-code-examples/how-to/flatten-pdfs/flatten-pdfs-flatten-basic.cs
using IronPrint;
// Configure print settings with flattening enabled
PrintSettings settings = new PrintSettings();
settings.Flatten = true;
// Send the flattened document to the default printer
Printer.Print("application-form.pdf", settings);
Imports IronPrint
' Configure print settings with flattening enabled
Dim settings As New PrintSettings()
settings.Flatten = True
' Send the flattened document to the default printer
Printer.Print("application-form.pdf", settings)
Wir instanziieren zuerst PrintSettings, das mit Standardwerten initialisiert wird — einschließlich Flatten = false. Wir setzen dann Flatten auf true, was IronPrint anweist, alle interaktiven Elemente in den Seiteninhalt zu integrieren, bevor der Druckauftrag gesendet wird. Wenn wir Printer.Print aufrufen, empfängt der Drucker eine vollständig statische Version des Dokuments.
Das Glätten erfolgt während der Druckpipeline im Speicher. Die Original-PDF-Datei bleibt auf der Festplatte interaktiv, sodass Endbenutzer das Formular weiterhin ausfüllen und erneut einreichen können. Dies ist eine wesentliche Unterscheidung: Wir glätten für den Drucker, verändern jedoch nicht dauerhaft die Quelldatei.
Die Flatten-Eigenschaft wurde in IronPrint v2024.7.2 eingeführt und ist in allen nachfolgenden Versionen verfügbar.
Wann sollte ich ein PDF vor dem Drucken glätten?
Das Glätten ist besonders wertvoll, wenn das PDF interaktive Elemente enthält, die möglicherweise nicht korrekt auf Papier gedruckt werden. Die häufigsten Szenarien beinhalten:
PDFs mit ausfüllbaren Formularfeldern. Texteingaben, Kontrollkästchen, Optionsfelder und Dropdown-Menüs werden vom PDF-Viewer gerendert — nicht im Seiteninhalt eingebettet. Einige Druckertreiber ignorieren diese Ebenen vollständig, was zu leeren Feldern auf der gedruckten Seite führt. Das Glätten zwingt die Feldwerte in die statische Seitenebene.
PDFs mit Anmerkungen oder Überlagerungen. Kommentare, Haftnotizen, Stempel und Markierungsanmerkungen existieren auf einer separaten Ebene. Das Glätten integriert sie in den sichtbaren Inhalt, sodass sie im gedruckten Ergebnis erscheinen.
PDFs mit eingebetteten Bildern auf verschiedenen Ebenen. Aus mehreren Quellen zusammengefügte Dokumente können Bilder auf verschiedenen z-Ebenen haben. Das Glätten fügt alles in eine einzige Ebene zusammen, um fehlende oder falsch ausgerichtete Bilder zu vermeiden.
Wenn das PDF nur statischen Text und Bilder enthält — wie ein aus HTML generierter Bericht oder ein gescanntes Dokument — hat das Glätten keinen Effekt. In diesen Fällen können wir Flatten auf seinem Standardwert von false lassen, um unnötigen Verarbeitungsaufwand zu vermeiden.
Wie kombiniere ich Glätten mit anderen Druckeinstellungen?
Die PrintSettings-Klasse bietet mehrere Eigenschaften neben Flatten. Wir können Papiergröße, Ausrichtung, DPI, Seitenränder und Kopienanzahl neben dem Glätten konfigurieren — alles in einem einzigen Druckauftrag.
:path=/static-assets/print/content-code-examples/how-to/flatten-pdfs/flatten-pdfs-combined-settings.cs
using IronPrint;
// Flatten and print with full configuration
PrintSettings settings = new PrintSettings
{
Flatten = true,
PaperSize = PaperSize.A4,
PaperOrientation = PaperOrientation.Portrait,
Dpi = 300,
NumberOfCopies = 2,
PaperMargins = new Margins(10, 10, 10, 10),
Grayscale = false
};
// Print a filled-out insurance claim form
Printer.Print("insurance-claim.pdf", settings);
Imports IronPrint
' Flatten and print with full configuration
Dim settings As New PrintSettings With {
.Flatten = True,
.PaperSize = PaperSize.A4,
.PaperOrientation = PaperOrientation.Portrait,
.Dpi = 300,
.NumberOfCopies = 2,
.PaperMargins = New Margins(10, 10, 10, 10),
.Grayscale = False
}
' Print a filled-out insurance claim form
Printer.Print("insurance-claim.pdf", settings)
Wir verwenden die Initialisierungssyntax von Objekten für Klarheit. Flatten = true stellt sicher, dass alle Formulardaten auf der gedruckten Seite erscheinen. PaperSize.A4 und PaperOrientation.Portrait entsprechen dem Standardformat für Geschäftsformulare. Dpi bei 300 sorgt für scharfen Text auf ausgefüllten Feldern, die ursprünglich in Bildschirmauflösung gerendert wurden. PaperMargins akzeptiert vier Werte in Millimetern über den Constructors.
Diese Eigenschaften stehen nicht im Konflikt miteinander. IronPrint wendet zuerst den Glättungsvorgang an, formatiert dann das resultierende statische Dokument gemäß den verbleibenden Einstellungen, bevor der Auftrag an den Drucker gesendet wird. Für weitere Optionen für Druckeinstellungen einschließlich Druckerauswahl und Schachtkonfiguration, siehe den vollständigen Konfigurationsleitfaden.
Wie drucke ich asynchron mit Glättung?
Für Anwendungen, bei denen das Blockieren des Hauptthreads nicht akzeptabel ist — wie in WPF- oder WinForms-Apps — verwenden wir Printer.PrintAsync. Die Methode akzeptiert das gleiche PrintSettings-Objekt und gibt einen Task zurück.
:path=/static-assets/print/content-code-examples/how-to/flatten-pdfs/flatten-pdfs-async-flatten.cs
using IronPrint;
using System.Threading.Tasks;
public class FormPrinter
{
public async Task PrintFlattenedFormAsync(string pdfPath)
{
// Flatten form fields and print asynchronously
PrintSettings settings = new PrintSettings
{
Flatten = true,
PaperSize = PaperSize.Letter,
Dpi = 300
};
// Non-blocking print — UI thread stays responsive
await Printer.PrintAsync(pdfPath, settings);
}
}
Imports IronPrint
Imports System.Threading.Tasks
Public Class FormPrinter
Public Async Function PrintFlattenedFormAsync(pdfPath As String) As Task
' Flatten form fields and print asynchronously
Dim settings As New PrintSettings With {
.Flatten = True,
.PaperSize = PaperSize.Letter,
.Dpi = 300
}
' Non-blocking print — UI thread stays responsive
Await Printer.PrintAsync(pdfPath, settings)
End Function
End Class
Dieses klassenbasierte Muster ist nützlich, wenn die Drucklogik in einer Dienstschicht implementiert ist. Wir konfigurieren Flatten = true zusammen mit PaperSize.Letter für US-Formate. Das await-Schlüsselwort gibt den aufrufenden Thread frei, während IronPrint die Glättung ausführt und den Druckauftrag sendet.
Die asynchronen Methoden von IronPrint — einschließlich PrintAsync und ShowPrintDialogAsync — respektieren alle die Flatten-Einstellung identisch zu ihren synchronen Gegenstücken. Unabhängig davon, ob wir still oder über einen Druckdialog drucken, bleibt das Glättungsverhalten konsistent.
Was sind meine nächsten Schritte?
Wir haben behandelt, wie man ein PDF drucken und dabei die Formularfelder mit der PrintSettings.Flatten-Eigenschaft von IronPrint in statischen Inhalt umwandeln kann. Der wichtigste Punkt: Setzen Sie Flatten = true, um interaktive Formularfelder, Anmerkungen und Bildebenen zur Druckzeit in statischen Inhalt umzuwandeln — ohne die Quelldatei zu ändern.
Um darauf weiter aufzubauen:
- Erkunden Sie den vollständigen Konfigurationsleitfaden für Druckeinstellungen für alle verfügbaren Eigenschaften
- Sehen Sie sich die Code-Beispiele für Druckeinstellungen für gängige Muster an
- Überprüfen Sie die PrintSettings-API-Referenz für Eigenschaftsdetails und Standardwerte
- Prüfen Sie das IronPrint-Änderungsprotokoll für die neuesten Funktionen und Verbesserungen
Starten Sie eine kostenlose 30-Tage-Testversion, um das Glätten von PDFs in Ihren eigenen Druck-Workflows zu testen, oder sehen Sie sich die Lizenzierungsoptionen für die Produktion an.

