Wie man PDFs in C# komprimiert

PDFs in C# komprimieren mit IronPDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF bietet leistungsstarke PDF-Komprimierungsfunktionen in C#, die die Dateigröße durch Komprimierung eingebetteter Bilder und Optimierung der PDF-Baumstrukturen verringern und so die Dokumente bei gleichbleibender Qualität für die Speicherung und Weitergabe besser handhabbar machen.

Die PDF-Komprimierung reduziert die Dateigröße von PDF-Dokumenten, um sie für die Speicherung, gemeinsame Nutzung und Übertragung handlicher zu machen. Unabhängig davon, ob Sie mit aus HTML generierten PDFs oder vorhandenen PDF-Dateien arbeiten, ist die Komprimierung für die Optimierung der Dokumentenverarbeitung unerlässlich.

Bilder machen in der Regel den größten Teil der PDF-Dateien aus. IronPDF bietet Komprimierungsfunktionen, die die Größe eingebetteter Bilder reduzieren und die Baumstruktur optimieren, die häufig in tabellenlastigen PDFs zu finden ist. Diese Techniken funktionieren nahtlos mit PDFs, die auf verschiedene Weisen erstellt wurden, einschließlich URL-zu-PDF-Konvertierungen und HTML-Dateikonvertierungen.

Schnellstart: PDF-Dateien mit IronPDF komprimieren

Reduzieren Sie die Größe von PDF-Dateien mit den Komprimierungswerkzeugen von IronPDF — ideal zum PDF komprimieren ohne Qualitätsverlust. Laden Sie Ihre PDF-Datei mit PdfDocument.FromFile und rufen Sie CompressAndSaveAs auf, um Ihre optimierte PDF-Datei in einem Schritt zu komprimieren und zu speichern.

  1. Installieren Sie IronPDF mit NuGet Package Manager

    PM > Install-Package IronPdf
  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    PdfDocument.FromFile("input.pdf").CompressAndSaveAs("compressed.pdf", 40);
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute, IronPDF in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion

    arrow pointer


Hinweis:Bisherige Komprimierungsmethoden wie CompressImages, CompressStructTree und Compress(CompressionOptions) sind veraltet.

Wie kann ich Bilder in PDFs komprimieren?

Die JPEG-Komprimierungsqualität akzeptiert Werte von 0 (maximale Komprimierung) bis 100 (minimaler Verlust), wobei die zugrunde liegende Engine bestimmt, wie der Wert angewendet wird. Das Verständnis dieser Ebenen hilft bei der Arbeit mit PDFs, die eingebettete Bilder enthalten, oder wenn Sie Schriftarten und Grafiken verwalten müssen.

  • 90% und mehr: hohe Qualität
  • 80%-90%: mittlere Qualität
  • 70%-80%: niedrige Qualität

Experimentieren Sie mit verschiedenen Werten, um ein Gleichgewicht zwischen Qualität und Dateigröße herzustellen. Die Qualitätsreduzierung variiert je nach Art des eingegebenen Bildes - einige Bilder weisen einen stärkeren Verlust an Klarheit auf als andere. Dies ist besonders wichtig bei der Arbeit mit Bildern aus Azure Blob Storage oder bei der Erstellung von PDFs mit eigenen Wasserzeichen.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-image.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");

// Compress images in the PDF
pdf.CompressAndSaveAs("compressed.pdf", 40);
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")

' Compress images in the PDF
pdf.CompressAndSaveAs("compressed.pdf", 40)
$vbLabelText   $csharpLabel

Welche Ergebnisse kann ich von der Bildkomprimierung erwarten?

Reduziert um 39,24%!

Dateivergleich komprimiert.pdf (449 KB) vs. nicht komprimiert.pdf (739 KB) zur Veranschaulichung der Bildkomprimierungsergebnisse

Wie funktioniert der Qualitätsparameter?

Der Parameter quality in CompressAndSaveAs steuert die JPEG-Codierungsqualität, die auf jedes eingebettete Bild angewendet wird. Übergeben Sie eine ganze Zahl von 0 (maximale Komprimierung, niedrigste Qualität) bis 100 (minimale Komprimierung, höchste Qualität) oder null, um die Bildkomprimierung vollständig zu überspringen.

IronPDF kodiert und skaliert Bilder während der Komprimierung automatisch neu, sodass keine zusätzlichen Optionen erforderlich sind. Niedrigere Werte führen zu kleineren Dateien, können aber sichtbare Artefakte hervorrufen – experimentieren Sie, um das richtige Gleichgewicht für Ihre Inhalte zu finden.


Wie komprimiere ich die PDF-Baumstruktur?

Diese Funktion reduziert die PDF-Größe, indem sie die von der Chrome-Engine erstellte Baumstruktur entfernt. Übergeben Sie dazu removeStructureTree: true als dritten Parameter von CompressAndSaveAs. Am effektivsten ist diese Option bei PDFs, die mit der Chrome-Engine erstellt wurden und umfangreiche Tabellendaten enthalten. Einige Rendering-Engines geben PDFs ohne diese Struktur aus, sodass die Funktion in diesen Fällen unwirksam ist. Diese Technik ist nützlich bei der Arbeit mit komplexen Layouts oder beim Zusammenführen mehrerer PDFs mit redundanten Strukturelementen.

Das Entfernen der Baumstruktur kann die Effizienz der Texthervorhebung und -extraktion beeinträchtigen. Berücksichtigen Sie diesen Kompromiss bei der Anwendung der Komprimierung, insbesondere wenn Benutzer Text und Bilder aus komprimierten PDFs extrahieren müssen.

Test CompressAndSaveAs with tree structure removal using this PDF with table data.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-tree-structure.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("table.pdf");

// Compress tree structure in PDF
pdf.CompressAndSaveAs("compressedTable.pdf", null, true);
Imports IronPdf

Dim pdf As PdfDocument = PdfDocument.FromFile("table.pdf")

' Compress tree structure in PDF
pdf.CompressAndSaveAs("compressedTable.pdf", Nothing, True)
$vbLabelText   $csharpLabel

Welche Dateigrößenreduzierung kann durch Baumstrukturkomprimierung erreicht werden?

Reduziert um 67,90%! Dieser Prozentsatz steigt mit größeren Tabellen-PDFs.

Dateivergleich zwischen compressedTable.pdf (52 KB) und table.pdf (162 KB), der die Komprimierungsergebnisse zeigt

Wie kann ich beide Komprimierungsmethoden zusammen anwenden?

CompressAndSaveAs übernimmt sowohl die Bild- als auch die Baumstrukturkomprimierung in einem einzigen Aufruf — übergeben Sie einen quality Wert und setzen Sie removeStructureTree auf true. Dieser kombinierte Ansatz ist besonders effektiv für komplexe PDF-Dateien, die Bilder und strukturierte Daten enthalten, wie Berichte mit Diagrammen oder Dokumente mit eingebetteten Tabellen und Grafiken.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-compress.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Configure compression with automatic optimization
pdf.CompressAndSaveAs("compressed.pdf", 80, true);
Imports IronPdf

Dim pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

' Configure compression with automatic optimization
pdf.CompressAndSaveAs("compressed.pdf", 80, True)
$vbLabelText   $csharpLabel

Welche Parameter akzeptiert CompressAndSaveAs?

  • outputPath (Zeichenkette): Der Dateipfad, unter dem die komprimierte PDF-Datei gespeichert wird.

  • quality (int?, 0–100): JPEG-Qualität, die auf jedes eingebettete Bild angewendet wird. Niedrigere Werte führen zu kleineren Dateien. Verwenden Sie null, um die Bildkomprimierung vollständig zu überspringen.

  • removeStructureTree (bool, Standardwert false): Wenn true, wird die PDF-Struktur entfernt, um die Dateigröße weiter zu reduzieren. Am effektivsten bei HTML-generierten PDFs mit Tabellen.

Berücksichtigen Sie bei der Anwendung der Komprimierung Ihren Anwendungsfall. Für Archivierungszwecke kann die Qualität Vorrang vor der Dateigröße haben. Für die Verbreitung im Internet sind unter Umständen kleinere Dateien erforderlich. Passen Sie die Einstellungen an, je nachdem, ob Sie mit PDF/A-konformen Dokumenten oder Standard-PDFs arbeiten.

Wie kann ich PDFs komprimieren, ohne sie auf der Festplatte zu speichern?

In vielen realen Anwendungsfällen — wie API-Antworten, Cloud-Funktionen oder E-Mail-Anhängen — ist das Schreiben einer komprimierten PDF-Datei auf die Festplatte unnötig oder unpraktisch.

CompressPdfToBytes gibt das komprimierte PDF als Byte-Array zurück und gibt Ihnen somit die volle Kontrolle darüber, wie die Ausgabe gespeichert oder übertragen wird. Sowohl CompressPdfToBytes als auch CompressPdfToStream akzeptieren einen optionalen Parameter CompressionMode, der die Art der Komprimierung steuert.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-to-bytes.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Compress and return as byte array
byte[] compressedBytes = pdf.CompressPdfToBytes();

File.WriteAllBytes("compressed.pdf", compressedBytes);
Imports IronPdf

Dim pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

' Compress and return as byte array
Dim compressedBytes As Byte() = pdf.CompressPdfToBytes()

File.WriteAllBytes("compressed.pdf", compressedBytes)
$vbLabelText   $csharpLabel

Welche Komprimierungsmodi stehen zur Verfügung?

Unterschiedliche Einsatzumgebungen unterliegen unterschiedlichen Einschränkungen hinsichtlich Festplattenzugriff und Leistung. Mit dem Enum CompressionMode können Sie den richtigen Kompromiss wählen.

  • Automatic (Standard): Wählt die optimale Komprimierungsmethode basierend auf den Systemfähigkeiten aus. Versucht zuerst HighQuality und greift auf FastMemory zurück, wenn der Festplattenzugriff eingeschränkt ist.

  • FastMemory: Führt die Komprimierung vollständig im Arbeitsspeicher durch, ohne Festplattenzugriffe. Dies ist die schnellste Option, führt aber weder zu einer Neuberechnung noch zu einer Verkleinerung des Bildes, was größere Ausgabedateien zur Folge hat.

  • HighQuality: Wendet maximale Komprimierung unter Verwendung temporären Festplattenzugriffs an. Erzeugt kleinste Ausgabedateien bei gleichzeitig vollständiger Bildoptimierung. Erfordert Schreibberechtigungen für das temporäre Systemverzeichnis.

Falls Sie anstelle eines Byte-Arrays ein Stream benötigen, verwenden Sie CompressPdfToStream. Dies ist nützlich, wenn die Daten direkt an eine HTTP-Antwort, einen Cloud-Speicher-Upload oder einen beliebigen stream-basierten Workflow weitergeleitet werden.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-to-stream.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Compress and return as Stream
using var compressedStream = pdf.CompressPdfToStream();

File.WriteAllBytes("compressed.pdf", compressedStream.ToArray());
Imports IronPdf

Dim pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

' Compress and return as Stream
Using compressedStream = pdf.CompressPdfToStream()
    File.WriteAllBytes("compressed.pdf", compressedStream.ToArray())
End Using
$vbLabelText   $csharpLabel

CompressPdfToBytes und CompressPdfToStream sind jetzt auf allen IronPDF Plattformen verfügbar, einschließlich Java, Node.js und Python.

Bereit zu sehen, was Sie sonst noch tun können? Sehen Sie sich hier unsere Tutorial-Seite an: Zusätzliche Funktionen

Häufig gestellte Fragen

Wie stark kann die Größe von PDF-Dateien durch Komprimierung verringert werden?

IronPDF kann die Größe von PDF-Dateien durch Bildkomprimierung und Strukturoptimierung um bis zu 75 % reduzieren. Im gezeigten Beispiel wurde eine Datei mithilfe von Bildkomprimierungstechniken um 39,24 % verkleinert.

Wie komprimiert IronPDF PDFs in C#?

IronPDF verwendet für die Komprimierung eine einzige Methode – CompressAndSaveAs . Es reduziert die Größe eingebetteter Bilder mithilfe einer konfigurierbaren JPEG-Qualität (0–100) und kann optional die interne Struktur des PDFs entfernen, indem removeStructureTree: true gesetzt wird. Dies ist besonders effektiv bei tabellenreichen Dokumenten.

Welche Qualitätsstufen sollte ich für die JPEG-Komprimierung in PDFs verwenden?

IronPDF unterstützt JPEG-Komprimierungsqualitäten von 1 % bis 100 %. Empfohlene Werte sind: 90% und mehr für hohe Qualität, 80%-90% für mittlere Qualität und 70%-80% für niedrige Qualität. Die optimale Einstellung hängt davon ab, ob Sie ein ausgewogenes Verhältnis zwischen Dateigröße und Anforderungen an die visuelle Qualität wünschen.

Kann ich eine PDF-Datei mit nur einer Zeile Code komprimieren?

Ja, IronPDF ermöglicht die PDF-Komprimierung in einer einzigen Codezeile: PdfDocument.FromFile("input.pdf").CompressAndSaveAs("compressed.pdf", 40); Dadurch wird eine PDF-Datei geladen, die Bilder werden mit 40 % Qualität komprimiert und das Ergebnis gespeichert.

Funktioniert die Komprimierung bei PDF-Dateien, die aus HTML erstellt wurden?

Ja, die Komprimierungsfunktionen von IronPDF funktionieren nahtlos mit PDFs, die mit verschiedenen Methoden erstellt wurden, einschließlich der Konvertierung von HTML-Strings in PDFs, der Konvertierung von URLs in PDFs und der Konvertierung von HTML-Dateien, sowie mit bestehenden PDF-Dateien.

Welche Arten von Inhalten profitieren am meisten von der PDF-Komprimierung?

Bilder machen in der Regel den größten Teil der PDF-Dateigröße aus, weshalb sich bildlastige Dokumente ideal für eine Komprimierung eignen. Außerdem profitieren PDFs mit komplexen Tabellenstrukturen von der IronPDF-Funktion zur Komprimierung von Strukturbäumen.

Kann ich eine PDF-Datei komprimieren, ohne sie auf der Festplatte zu speichern?

Ja, IronPDF bietet die Methoden CompressPdfToBytes und CompressPdfToStream , die das komprimierte PDF als Byte-Array bzw. Stream zurückgeben. Beide akzeptieren den optionalen Parameter CompressionMode mit den Optionen „Automatisch“, „Schnelle Speicherkomprimierung“ oder „Hohe Qualität“.

Ist die PDF-Komprimierung auch in anderen Sprachen als C# verfügbar?

Ja, CompressPdfToBytes und CompressPdfToStream sind jetzt auf allen IronPDF Plattformen verfügbar, einschließlich Java, Node.js und Python.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Rezensiert von
Jeff Fritz
Jeffrey T. Fritz
Principal Program Manager - .NET Community Team
Jeff ist außerdem Principal Program Manager für das .NET- und Visual Studio-Team. Er ist der ausführende Produzent der .NET Conf Virtual Conference Series und moderiert ‚Fritz and Friends‘, einen Livestream für Entwickler, der zweimal wöchentlich ausgestrahlt wird. Dort spricht er über Technik und schreibt gemeinsam mit den Zuschauern Code. Jeff schreibt Workshops, Präsentationen und plant Inhalte für die größten Microsoft-Entwicklerveranstaltungen, einschließlich Microsoft Build, Microsoft Ignite, .NET Conf und dem Microsoft MVP Summit.
Bereit anzufangen?
Nuget Downloads 18,560,885 | Version: 2026.4 gerade veröffentlicht
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis? PM > Install-Package IronPdf
Führen Sie eine Probe aus Sehen Sie zu, wie Ihr HTML-Code in eine PDF-Datei umgewandelt wird.