Wie man PDFs in C# komprimiert

Komprimieren von PDFs in C# mit IronPDF

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

IronPDF komprimiert PDFs in C# durch die CompressAndSaveAs Methode, die eingebettete Bilder als JPEG erneut kodiert und optional den PDF-Strukturbaum entfernt, um die Dateigröße in einem einzigen Aufruf zu reduzieren. Die Begleitmethoden CompressPdfToBytes und CompressPdfToStream erledigen dieselbe Arbeit im Speicher, wenn Sie nie die Festplatte berühren wollen.

Bilder machen normalerweise den größten Teil der Größe eines PDFs aus, und dokumentlastige Tabellen tragen einen Strukturbaum, der weiteres Gewicht hinzufügt. IronPDF zielt auf beides ab, sodass der gleiche Aufruf auf von der Festplatte geladenen oder in einem Speicherstrom gehaltene PDFs angewendet werden kann.

Schnellstart: PDF-Dateien mit IronPDF komprimieren

Laden Sie Ihr PDF mit PdfDocument.FromFile und rufen Sie CompressAndSaveAs auf, um seine Bilder erneut zu kodieren und die verschlankte Kopie in einem Schritt zu schreiben. Das zweite Argument ist die JPEG-Qualität.

  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:Frühere Methoden zur Komprimierung wie CompressImages, CompressStructTree und Compress(CompressionOptions) sind veraltet.

Wie kann ich Bilder in PDFs komprimieren?

Geben Sie einen JPEG-quality-Wert als zweites Argument an CompressAndSaveAs weiter, und IronPDF kodiert jedes eingebettete Bild in dieser Qualität erneut. Die Werte reichen von 0 (maximale Komprimierung) bis 100 (minimaler Verlust), und die zugrunde liegende Engine entscheidet, wie jeder Wert auf die Ausgabe abgebildet wird. Dies ist die Methode, zu der Sie greifen sollten, wenn ein Dokument eingebettete Bilder enthält.

Als grober Leitfaden:

  • 90 und darüber: hohe Qualität
  • 80 bis 90: mittlere Qualität
  • 70 bis 80: niedrige Qualität

Eine kleinere Zahl drückt härter, kann jedoch sichtbare Artefakte einführen, und wie stark die Klarheit abnimmt, hängt vom Quellbild ab, testen Sie also einige Einstellungen an Ihrem eigenen Inhalt, um das gewünschte Gleichgewicht zu finden.

Eingabe

: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

Ausgabe

Welche Ergebnisse kann ich von der Bildkomprimierung erwarten?

Verringert um 39,24% in einem Wikipedia-Render.

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

Wie komprimiere ich die PDF-Baumstruktur?

Geben Sie removeStructureTree: true als drittes Argument an CompressAndSaveAs weiter, um die Baumstruktur zu entfernen, die die Chrome-Engine in ein PDF schreibt. Die Einsparung ist bei Chrome-Engine-PDFs, die umfangreiche Tabellendaten enthalten, am größten. Einige Rendering-Engines produzieren keine solche Struktur, was nichts für die Funktion hinterlässt, um zu entfernen.

Das Entfernen der Baumstruktur kann das Hervorheben und Auswählen von Text schwächen, wiegen Sie dies also gegen den Größengewinn ab, wenn die Leser später Texte und Bilder extrahieren müssen.

Testen Sie CompressAndSaveAs mit entferntem Baumstruktur mit diesem PDF mit Tischdaten.

: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?

Verringert um 67,90%. Die Zahl steigt, wenn das Tabellen-PDF wächst.

Dateivergleich zwischen compressedTable.pdf (52 KB) und table.pdf (162 KB), der die Komprimierungsergebnisse zeigt
Icon Quote related to Welche Dateigrößenreduzierung kann durch Baumstrukturkomprimierung erreicht werden?

Meine Lieblingsbibliothek dieser Art ist IronPDF. Es ermöglicht eine schnelle und effiziente Bearbeitung von PDF-Dateien. Es verfügt auch über viele wertvolle Funktionen, wie das Exportieren in das PDF/A-Format und das digitale Signieren von PDF-Dokumenten.

Milan Jovanovic related to Welche Dateigrößenreduzierung kann durch Baumstrukturkomprimierung erreicht werden?

Milan Jovanovic

Microsoft MVP

Fallstudie ansehen
Icon Quote related to Welche Dateigrößenreduzierung kann durch Baumstrukturkomprimierung erreicht werden?

IronOCR bedeutet, dass wir jährlich 40.000 $ durch manuelle Verarbeitung einsparen können, während die Produktivität gesteigert wird und Ressourcen für wichtige Aufgaben freigesetzt werden. Ich würde es sehr empfehlen.

Brent Matzelle related to Welche Dateigrößenreduzierung kann durch Baumstrukturkomprimierung erreicht werden?

Brent Matzelle

Technischer Leiter, OPYN

Fallstudie ansehen
Icon Quote related to Welche Dateigrößenreduzierung kann durch Baumstrukturkomprimierung erreicht werden?

Die Iron Suite spielt eine entscheidende Rolle in unseren Operationen. Diese Werkzeuge erhöhen die Effizienz im gesamten Unternehmen, einschließlich der Erstellung von Grundrissen und der Verbesserung des Bestandsmanagements.

David Jones related to Welche Dateigrößenreduzierung kann durch Baumstrukturkomprimierung erreicht werden?

David Jones

Leitender Software-Ingenieur, Agorus Build

Fallstudie ansehen

Wie kann ich beide Komprimierungsmethoden zusammen anwenden?

Liefern Sie einen quality-Wert und setzen Sie removeStructureTree auf true im selben CompressAndSaveAs Aufruf, um beide Quellen des Aufblähens auf einmal zu reduzieren. Diese Paarung macht sich auf Dokumenten bezahlt, die Bilder mit strukturierten Daten mischen, wie Berichte mit Diagrammen oder Rechnungen mit eingebetteten Tabellen.

: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 (Zeichenfolge): der Dateipfad, wohin das komprimierte PDF geschrieben wird.

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

  • removeStructureTree (bool, Standard false): wenn true, entfernt den PDF-Strukturbaum, um die Dateigröße weiter zu reduzieren. Am effektivsten für HTML-generierte PDFs mit Tabellen.

Lassen Sie den Anwendungsfall die Regler einstellen. Archivkopien bevorzugen oft Qualität über Größe, während die Webverteilung kleinere Dateien belohnt. Dasselbe gilt, wenn Sie PDF/A-konforme Dokumente komprimieren, bei denen die Bildtreue Priorität haben kann.

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

API-Antworten, Cloud-Funktionen und E-Mail-Anhänge benötigen selten ein komprimiertes PDF auf der Festplatte. CompressPdfToBytes gibt das Ergebnis als Byte-Array zurück, sodass Sie entscheiden, wohin die Bytes als Nächstes kommen.

: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

Wenn Sie einen Stream anstelle eines Byte-Arrays benötigen, rufen Sie CompressPdfToStream auf und kopieren es an Ihr Ziel. Dies eignet sich für die Weiterleitung von Ausgaben an einen HTTP-Antworttext, einen Cloud-Speicher-Upload oder jeden stream-basierten Workflow.

: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();

using var fileStream = File.Create("compressed.pdf");
compressedStream.CopyTo(fileStream);
Imports IronPdf

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

' Compress and return as Stream
Using compressedStream = pdf.CompressPdfToStream()
    Using fileStream = File.Create("compressed.pdf")
        compressedStream.CopyTo(fileStream)
    End Using
End Using
$vbLabelText   $csharpLabel

Welche CompressionModus-Optionen sind verfügbar?

Sowohl CompressPdfToBytes als auch CompressPdfToStream nehmen ein optionales CompressionModus Argument an, das bestimmt, wie die Arbeit ausgeführt wird. Die Bereitstellungsziele unterscheiden sich darin, ob sie Festplattenzugriff zulassen, und der Modus ermöglicht es Ihnen, den richtigen Trade-Off zu wählen:

Modus Festplattenzugriff Bildneusampling Ausgabengröße
Automatisch (Standard) Versucht Platte, fällt auf Speicher zurück Wenn die Platte verfügbar ist Kleinste, wenn erlaubt
SchnellerSpeicher Neinne Nein Größer
Hohe Qualität Temporäres Verzeichnis erforderlich Ja Kleinste

Automatic versucht zuerst HighQuality und fällt auf FastMemory zurück, wenn das temporäre Verzeichnis nicht zugänglich ist. Das unten stehende Beispiel erzwingt HighQuality für das kleinste Ausgabeformat, welches Schreibzugriff auf das temporäre Verzeichnis des Systems zur Laufzeit benötigt.

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

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

// HighQuality resamples images using the system temp directory, so it produces
// the smallest output but needs write access to that directory at runtime
byte[] compressedBytes = pdf.CompressPdfToBytes(50, false, CompressionMode.HighQuality);

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

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

' HighQuality resamples images using the system temp directory, so it produces
' the smallest output but needs write access to that directory at runtime
Dim compressedBytes As Byte() = pdf.CompressPdfToBytes(50, False, CompressionMode.HighQuality)

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

Ausgabe

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

Abschluss

Sie haben jetzt eine Methode, CompressAndSaveAs, die Bilder erneut kodiert und den Strukturbaum entfernt, sowie CompressPdfToBytes und CompressPdfToStream für dieselbe Aufgabe im Speicher unter einem gewählten CompressionModus. Ein natürlicher nächster Schritt ist es, diese verschlankten Seiten mit PDF-Rasterisierung in Thumbnails umzuwandeln.

Häufig gestellte Fragen

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

Die Ergebnisse variieren je nach Inhalt. In den gezeigten Beispielen reduzierte die Bildkompression eine Datei um 39,24 % und die Strukturbaumentfernung reduzierte ein tabellenlastiges PDF um 67,90 %. Bild- und tabellenlastige Dokumente erfahren die größten Einsparungen.

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 Kompression von IronPDF funktioniert mit PDFs, die durch verschiedene Methoden erstellt wurden, einschließlich HTML-String-zu-PDF-Konvertierungen, URL-zu-PDF-Konvertierungen und HTML-Dateikonvertierungen sowie 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.

Wie erhalte ich eine feinkörnige Kontrolle über die PDF-Komprimierung in C#?

Übergeben Sie ein AdvancedCompressionOptions-Objekt an CompressAndSaveAs, um den Pipeline zu tunen, einschließlich der Bild-DPI-Herunterrechnung über TargetImageDpi, der JPEG-Codierungsqualität über JpegQuality und der zlib-CompressionLevel. Die ursprüngliche CompressAndSaveAs(outputPath, quality, removeStructureTree)-Überladung funktioniert weiterhin und liefert dasselbe Ergebnis wie zuvor.

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 20,296,129 | Version: 2026.7 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.