PDFs komprimieren

Chaknith related to PDFs komprimieren
Chaknith Bin
26. Oktober 2023
Aktualisiert 10. Dezember 2024
Teilen Sie:
This article was translated from English: Does it need improvement?
Translated
View the article in English

PDF-Kompression bezieht sich auf den Prozess der Reduzierung der Dateigröße eines PDF-Dokuments (Portable Document Format). Diese Komprimierung wird angewandt, um die PDF-Datei für die Speicherung, gemeinsame Nutzung und Übertragung handlicher zu machen, insbesondere bei großen oder bildreichen Dokumenten.

Bilder machen in der Regel einen großen Teil der PDF-Dateigrößen aus, da sie im Vergleich zu Text und anderen Inhalten in der Regel größer sind. IronPdf bietet PDF-Komprimierungsfunktionen, die die eingebetteten Bilder komprimieren und die Baumstruktur reduzieren, die häufig mit Tabellendaten in PDFs einhergeht.

Erste Schritte mit IronPDF

Beginnen Sie noch heute mit der Verwendung von IronPDF in Ihrem Projekt mit einer kostenlosen Testversion.

Erster Schritt:
green arrow pointer



Beispiel für das Komprimieren von Bildern

Bei der Größenänderung von JPEGs gibt es bei 100 % Qualität fast keine Verluste, und 1 % ist ein sehr minderwertiges Ausgabebild.

  • 90% und mehr: gilt als hochwertig
  • 80%-90%: mittlere Qualität
  • 70%-80%: gelten als minderwertig

    Probieren Sie ruhig verschiedene Werte aus, um den Kompromiss zwischen Qualität und Dateigröße zu verstehen. Es ist wichtig zu beachten, dass die Qualitätsreduzierung je nach Art des Eingabebildes variiert und bei bestimmten Bildern eine stärkere Reduzierung der Klarheit auftreten kann als bei anderen.

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

pdf.SaveAs("compressed.pdf");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

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

' Compress images in the PDF
pdf.CompressImages(40)

pdf.SaveAs("compressed.pdf")
$vbLabelText   $csharpLabel

Bilder komprimieren - Größenvergleich

Reduziert um 39,24%!!

Bilder komprimieren - Größenvergleich

Verständnis der Bildkomprimierungsoptionen

Schauen wir uns nun die Details unserer Bildkomprimierungsoptionen an:

ShrinkImage: Diese Funktion reduziert die Bildauflösung basierend auf ihrer sichtbaren Größe im PDF-Dokument. Auf diese Weise werden Größe und Qualität der Bilder erheblich reduziert und sie für eine effiziente Speicherung und Übertragung optimiert.

HighQualitySubsampling: Diese Einstellung bestimmt die Chroma-Subsampling-Methode, die für die Bildkomprimierung verwendet wird. Bei der Auswahl von "True" wird eine 4:4:4-Chroma-Unterabtastung verwendet, die eine höhere Bildqualität mit vollen Farbdetails gewährleistet. Wenn Sie dagegen "Falsch" wählen, wird eine 4:1:1-Chroma-Unterabtastung durchgeführt, bei der einige Farbdetails geopfert werden, um die Bildgröße weiter zu verringern.

Chroma Subsampling ist eine wichtige Technik bei der digitalen Bildkomprimierung, die darauf abzielt, die für die Darstellung eines Bildes erforderlichen Daten zu reduzieren und gleichzeitig seine visuelle Qualität zu erhalten. Dies wird erreicht, indem selektiv die Auflösung der Farb­informa­tionen (Chrominanz) verringert wird, während die volle Auflösung der Helligkeits­informa­tionen (Luminanz) beibehalten wird.

Bei der "4:4:4"-Chroma-Unterabtastung behält jedes Pixel seine eigenen Farbinformationen bei, so dass keine Farbdetails verloren gehen. Umgekehrt werden bei der "4:1:1"-Chroma-Unterabtastung die Farbinformationen mit einer geringeren Auflösung unterabgetastet, was zwar die Farbdetails reduziert, aber auch die Dateigröße verringert.


Beispiel für eine komprimierte Baumstruktur

Diese Funktion wird verwendet, um die Größe der PDF-Datei zu reduzieren, indem die von der Chrome Engine erstellte Baumstruktur minimiert wird. Sie funktioniert gut bei PDFs, die von der Chrome Engine aus HTML mit umfangreichen Tabellendaten erzeugt wurden. Einige PDF-Rendering-Engines können PDF-Dateien ohne diese Baumstruktur ausgeben, so dass die Funktion nicht effektiv ist.

Der Nachteil des Entfernens der gesamten Baumstruktur ist, dass bei einigen PDFs das Hervorheben von Text oder das Extrahieren nicht so effektiv funktioniert.

Verwenden wir das PDF mit Tabellendaten, um die CompressStructTree-Methode zu testen.

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

pdf.SaveAs("compressedTable.pdf");
Imports IronPdf

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

' Compress tree structure in PDF
pdf.CompressStructTree()

pdf.SaveAs("compressedTable.pdf")
$vbLabelText   $csharpLabel

Baumstruktur komprimieren - Größenvergleich

Um 67,90% reduziert!! Dieser Prozentsatz erhöht sich bei größeren Tabellen-PDFs.

Baumstruktur komprimieren - Größenvergleich

Erweiterte Komprimierungsmethoden

IronPDF verfügt auch über eine Compress-Methode, die sowohl die Bildkompression als auch die Kompression der Baumstruktur konfigurieren kann, wodurch das Komprimieren von Dokumenten einfacher als je zuvor wird.

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

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

CompressionOptions compressionOptions = new CompressionOptions();

// Configure image compression
compressionOptions.CompressImages = true;
compressionOptions.JpegQuality = 80;
compressionOptions.HighQualityImageSubsampling = true;
compressionOptions.ShrinkImages = true;

// Configure tree structure compression
compressionOptions.RemoveStructureTree = true;

pdf.Compress(compressionOptions);

pdf.SaveAs("compressed.pdf");
Imports IronPdf

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

Private compressionOptions As New CompressionOptions()

' Configure image compression
compressionOptions.CompressImages = True
compressionOptions.JpegQuality = 80
compressionOptions.HighQualityImageSubsampling = True
compressionOptions.ShrinkImages = True

' Configure tree structure compression
compressionOptions.RemoveStructureTree = True

pdf.Compress(compressionOptions)

pdf.SaveAs("compressed.pdf")
$vbLabelText   $csharpLabel

Verfügbare Optionen erkunden

  • CompressImages: Steuert, ob vorhandene Bilder im Dokument mittels JPG-Kodierung komprimiert werden. Die Standardeinstellung ist false.
  • RemoveStructureTree: Das Entfernen des Strukturbaums kann den vom Dokument verwendeten Speicherplatz erheblich reduzieren. Dies kann sich jedoch negativ auf die Textauswahl auswirken, insbesondere bei komplizierten Dokumenten.
  • JpegQuality: Gibt die JPEG-Qualität an (im Bereich von 1 bis 100), die während der Bildkomprimierung verwendet werden soll. Sie ist standardmäßig auf 42 eingestellt.
  • HighQualityImageSubsampling: Diese Eigenschaft bestimmt, ob 444-Chroma-Subsampling für höhere Bildqualität (true) oder 411-Chroma-Subsampling zur weiteren Reduzierung der Bildgröße (false) verwendet wird.
  • ShrinkImages: Das Herunterskalieren der Bildauflösung kann die Größe und Qualität der Bilder im Dokument drastisch reduzieren.
Chaknith related to Verfügbare Optionen erkunden
Software-Ingenieur
Chaknith ist der Sherlock Holmes der Entwickler. Zum ersten Mal kam ihm der Gedanke, dass er eine Zukunft in der Softwareentwicklung haben könnte, als er zum Spaß an Code Challenges teilnahm. Sein Schwerpunkt liegt auf IronXL und IronBarcode, aber er ist stolz darauf, Kunden mit jedem Produkt zu helfen. Chaknith nutzt sein Wissen aus direkten Gesprächen mit Kunden, um die Produkte selbst weiter zu verbessern. Sein anekdotisches Feedback geht über Jira-Tickets hinaus und unterstützt die Produktentwicklung, die Dokumentation und das Marketing, um das Gesamterlebnis der Kunden zu verbessern.Wenn er nicht im Büro ist, lernt er über maschinelles Lernen, programmiert und wandert.