PDFs komprimieren

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

von Chaknith Bin

Unter PDF-Komprimierung versteht man die Reduzierung der Dateigröße einer PDF-Datei(Portable Document Format) dokument. 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.


C# NuGet-Bibliothek für PDF

Installieren mit NuGet

Install-Package IronPdf
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

C# NuGet-Bibliothek für PDF

Installieren mit NuGet

Install-Package IronPdf
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

Fangen Sie noch heute an, IronPDF in Ihrem Projekt mit einer kostenlosen Testversion zu verwenden.

Erster Schritt:
green arrow pointer

Schau dir an IronPDF an Nuget Für schnelle Installation und Bereitstellung. Mit über 8 Millionen Downloads verwandelt es PDF mit C#.

C# NuGet-Bibliothek für PDF nuget.org/packages/IronPdf/
Install-Package IronPdf

Erwägen Sie die Installation der IronPDF DLL direkt. Laden Sie es herunter und installieren Sie es manuell für Ihr Projekt oder die GAC-Form: IronPdf.zip

Manuelle Installation in Ihr Projekt

DLL herunterladen

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")
VB   C#

Bilder komprimieren - Größenvergleich

Verringert um 39,24%!!

Bilder komprimieren - Größenvergleich

Verständnis der Bildkomprimierungsoptionen

Schauen wir uns nun die Details unserer Bildkomprimierungsoptionen an:

ShrinkImage: Mit dieser Funktion wird die Bildauflösung entsprechend der sichtbaren Größe im PDF-Dokument verkleinert. 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 das Chroma-Subsampling-Verfahren, das für die Bildkompression 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 durch eine selektive Verringerung der Auflösung der Farbinformationen erreicht(chrominanz) unter Beibehaltung der vollen Auflösung der Helligkeitsinformationen(leuchtdichte).

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 die tabelle.pdf datei, um die Methode "CompressStructTree" 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")
VB   C#

Baumstruktur komprimieren - Größenvergleich

Ermäßigt um 67,90%!! Dieser Prozentsatz erhöht sich bei größeren PDF-Tabellen.

Baumstruktur komprimieren - Größenvergleich

Erweiterte Komprimierungsmethoden

IronPDF verfügt auch über eine Compress-Methode, mit der sowohl die Bildkomprimierung als auch die Komprimierung der Baumstruktur konfiguriert werden kann, was die Komprimierung von Dokumenten einfacher denn je macht.

: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")
VB   C#

Erkunden Sie die verfügbaren Optionen

  • CompressImages: Steuert, ob vorhandene Bilder im Dokument mit JPG-Kodierung komprimiert werden. Die Standardeinstellung ist false.
  • RemoveStructureTree: Durch das Entfernen des Strukturbaums kann der vom Dokument beanspruchte Speicherplatz erheblich reduziert werden. Dies kann sich jedoch negativ auf die Textauswahl auswirken, insbesondere bei komplizierten Dokumenten.
  • JpegQualität: Gibt die JPEG-Qualität an(bereich von 1 bis 100) die bei der Bildkomprimierung zu verwenden sind. Sie ist standardmäßig auf 42 eingestellt.
  • HighQualityImageSubsampling: Diese Eigenschaft legt fest, ob 444 Chroma-Unterabtastungen für eine höhere Bildqualität verwendet werden sollen(wahr) oder 411 Chroma Subsampling zur weiteren Reduzierung der Bildgröße(falsch).
  • ShrinkImages: Die Verkleinerung der Bildauflösung kann die Größe und Qualität der Bilder im Dokument drastisch reduzieren.

Chaknith Bin

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.