Wie komprimiert man PDF-Dateien mit Python | IronPDF

Komprimieren von PDF-Dateien in Python

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

Mit der CompressImages-Methode von IronPDF können Python-Entwickler die Größe von PDF-Dateien reduzieren, indem sie eingebettete Bilder mit anpassbaren Qualitätseinstellungen komprimieren. Dies hilft, Speicherplatz zu optimieren und die gemeinsame Nutzung von Dokumenten zu beschleunigen, ohne die Lesbarkeit zu beeinträchtigen.

Schnellstart: PDF-Dateien in Python komprimieren

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/quickstart.py
from ironpdf import PdfDocument

# 1. Install IronPDF: pip install ironpdf
# 2. Load your PDF
pdf = PdfDocument("your-file.pdf")
# 3. Compress images (quality: 1-100)
pdf.CompressImages(60)
# 4. Save compressed PDF
pdf.SaveAs("compressed.pdf")
# 5. Adjust quality parameter to balance size vs quality
// DIESE CODE-AUSZUG IST NICHT VERFÜGBAR!
from ironpdf import PdfDocument

# 1. Install IronPDF: pip install ironpdf
# 2. Load your PDF
pdf = PdfDocument("your-file.pdf")
# 3. Compress images (quality: 1-100)
pdf.CompressImages(60)
# 4. Save compressed PDF
pdf.SaveAs("compressed.pdf")
# 5. Adjust quality parameter to balance size vs quality
PYTHON

PDF-Dateien werden häufig für die Speicherung und den Austausch von Dokumenten verwendet, doch können sie bei großen Dateigrößen schwerfällig werden. Der Upload oder E-Mail-Versand eines 10 MB-Berichts ist spürbar langsamer als das Teilen eines 2 MB-Äquivalents, und die Speicherkosten summieren sich, wenn Dokumentvolumen hoch sind. Die PDF-Kompression adressiert dies, indem sie die Dateigröße reduziert, während der Inhalt lesbar bleibt.

Diese Anleitung zeigt, wie man IronPDF verwendet, um PDF-Dateien in Python zu komprimieren. Praktische Code-Beispiele decken sowohl die Standard-Bildkompression als auch die fortschrittliche auflösungsbasierte Kompression ab, sodass Sie den Ansatz wählen können, der zu Ihrem Workflow passt. Egal, ob Sie mit HTML-zu-PDF-Konvertierungen oder bestehenden Dokumenten arbeiten, die gleiche Kompressions-API gilt.

Was ist IronPDF und warum sollte man es für die PDF-Komprimierung verwenden?

IronPDF ist eine Python-PDF-Bibliothek, die die Erstellung, das Lesen, die Bearbeitung und die Optimierung von PDF-Dokumenten behandelt. Es arbeitet mit Dateien, die von Grund auf neu erstellt, von HTML konvertiert oder von der Festplatte geladen wurden. Seine Kompressions-API zielt auf Bilder ab, die Hauptverursacher für große PDF-Größen sind.

Die Methode CompressImages akzeptiert einen Qualitätswert zwischen 1 und 100 sowie einen optionalen booleschen Wert, der Bilder auf ihre sichtbare Auflösung verkleinert. Dieses Design mit zwei Parametern ermöglicht Ihnen eine präzise Kompression: Ein hochfrequentiertes Berichterstattungs-Dashboard könnte Qualität 70 verwenden, um Grafiken scharf zu halten, während ein internes Archivierungssystem möglicherweise Qualität 40 verwendet, um maximale Speicherplatzersparnis zu erzielen. Die Bibliothek bearbeitet alle Kodierungen intern, sodass keine zusätzlichen Abhängigkeiten erforderlich sind.

IronPDF ist Teil der Iron Suite, die Dokumentenerstellung, Barcode-Verarbeitung, OCR und ZIP-Archivierung umfasst, alles aus einer gemeinsamen Python-Installation. Für Entwickler, die IronPDF bereits verwenden, um PDFs von Grund auf neu zu erstellen, ist die Kompression ein natürlicher Schritt, bevor Dateien gespeichert oder verteilt werden.

Wie installiert man IronPDF in Python?

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/install.sh
:ProductInstall
// DIESE CODE-AUSZUG IST NICHT VERFÜGBAR!
:ProductInstall
SHELL

Hinweis:IronPDF for Python läuft auf der IronPDF .NET-Bibliothek, die das .NET 6.0 SDK erfordert. Laden Sie das .NET 6.0 SDK von der offiziellen Microsoft-Website herunter, bevor Sie das pip install ausführen.

Nach der Installation konfigurieren Sie Ihren Lizenzschlüssel für Produktionsumgebungen. IronPDF enthält eine kostenlose 30-Tage-Testversion, die alle Funktionen abdeckt, einschließlich Kompression, ohne dass eine Kreditkarte erforderlich ist. Die PyPI-Paketseite listet die neuesten Release-Hinweise und Abhängigkeitsdetails auf.

Wie komprimiert man PDF-Dateien mit IronPDF?

Übergeben Sie einen Qualitätswert an CompressImages, um die Größe der eingebetteten Bilder im gesamten Dokument zu reduzieren. Niedrigere Ganzzahlen erzeugen kleinere Dateien auf Kosten der Bildqualität; höhere Ganzzahlen erhalten mehr Details. Das folgende Beispiel zeigt sowohl einen Standardkompressionsaufruf als auch einen erweiterten Aufruf, der Bilder auf ihre sichtbare Größe herunterskalieren kann.

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/compress-basic.py
from ironpdf import PdfDocument

# Load the PDF document from a file
pdf = PdfDocument("Image based PDF.pdf")

# Compress images to quality 60 (lower numbers increase compression)
pdf.CompressImages(60)
pdf.SaveAs("document_compressed.pdf")

# Advanced: also scale images down to their visible size in the PDF
# Note: scaling can affect image clarity if pages are resized later
pdf.CompressImages(90, True)
pdf.SaveAs("Compressed.pdf")
// DIESE CODE-AUSZUG IST NICHT VERFÜGBAR!
from ironpdf import PdfDocument

# Load the PDF document from a file
pdf = PdfDocument("Image based PDF.pdf")

# Compress images to quality 60 (lower numbers increase compression)
pdf.CompressImages(60)
pdf.SaveAs("document_compressed.pdf")

# Advanced: also scale images down to their visible size in the PDF
# Note: scaling can affect image clarity if pages are resized later
pdf.CompressImages(90, True)
pdf.SaveAs("Compressed.pdf")
PYTHON

Was bedeuten die Komprimierungsparameter?

CompressImages akzeptiert zwei Parameter:

  • Qualität (erforderlich): Ein ganzzahliger Wert von 1 bis 100. Ein Wert von 100 behält die originale Bildqualität ohne angewandte Kompression bei. Werte zwischen 40 und 80 decken die meisten praktischen Anwendungsfälle ab, wobei 60 ein häufiger Ausgangspunkt für allgemeine Dokumente ist.
  • Auf sichtbare Größe skalieren (optional): Ein boolescher Wert, dessen Standardwert False ist. Bei True wird jedes Bild neu skaliert, um es an die gerenderten Abmessungen auf der Seite anzupassen. Dies fügt eine zweite Reduktionsstufe zur Qualitätskompression hinzu und erzeugt kleinere Dateien. Beachten Sie, dass Seiten, die später in höherer DPI skaliert oder gedruckt werden, Artefakte aufweisen können.

Vergleichen Sie nach dem Speichern die komprimierte Datei mit dem Original in jedem PDF-Viewer, um sicherzustellen, dass die Qualität Ihren Anforderungen entspricht. Für zusätzliche Musterbeispiele siehe die Seite PDF-Kompressionsbeispiele.

Wie sieht die PDF-Datei vor der Komprimierung aus?

PDF-Datei, geöffnet im Microsoft Edge-Browser, mit einer Dateigröße von 458 KB vor der Anwendung der IronPDF-Python-Komprimierung

Wie sieht die PDF-Datei nach der Komprimierung aus?

Eintrag einer komprimierten PDF-Datei im Windows Explorer mit einer Dateigröße von 357 KB, was einer Reduzierung um 22 % gegenüber 458 KB entspricht, erzielt mit IronPDF CompressImages bei einer Qualität von 60

Der Vergleich zeigt eine Reduktion von 458 KB auf 357 KB (ca. 22%) bei Verwendung einer Qualität von 60. Dateien mit einem höheren Anteil an fotografischem Inhalt erzielen in der Regel größere Reduktionen als Dateien, die von Text oder Vektorgrafiken dominiert werden.

Wie wendet man Batch-Kompression auf mehrere PDF-Dateien an?

Die Verarbeitung eines Ordners mit PDF-Dateien erfolgt über dieselbe API: Durchlaufen Sie jede .pdf-Datei, laden Sie sie mit PdfDocument, rufen Sie CompressImages auf und speichern Sie das Ergebnis. Die folgende Funktion fasst dieses Muster zu einem wiederverwendbaren Hilfsprogramm zusammen.

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/batch-compress.py
import os
from ironpdf import PdfDocument

def batch_compress_pdfs(input_folder, output_folder, quality=60):
    """
    Compress all PDF files in a folder.

    Args:
        input_folder: Path to folder containing source PDFs
        output_folder: Path where compressed PDFs will be saved
        quality: Compression quality (1–100); default is 60
    """
    # Create the output folder if it does not exist
    os.makedirs(output_folder, exist_ok=True)

    for filename in os.listdir(input_folder):
        if filename.endswith(".pdf"):
            input_path = os.path.join(input_folder, filename)
            output_path = os.path.join(output_folder, f"compressed_{filename}")

            try:
                pdf = PdfDocument(input_path)
                pdf.CompressImages(quality)
                pdf.SaveAs(output_path)
                print(f"Compressed: {filename}")
            except Exception as e:
                print(f"Error compressing {filename}: {e}")
// DIESE CODE-AUSZUG IST NICHT VERFÜGBAR!
import os
from ironpdf import PdfDocument

def batch_compress_pdfs(input_folder, output_folder, quality=60):
    """
    Compress all PDF files in a folder.

    Args:
        input_folder: Path to folder containing source PDFs
        output_folder: Path where compressed PDFs will be saved
        quality: Compression quality (1–100); default is 60
    """
    # Create the output folder if it does not exist
    os.makedirs(output_folder, exist_ok=True)

    for filename in os.listdir(input_folder):
        if filename.endswith(".pdf"):
            input_path = os.path.join(input_folder, filename)
            output_path = os.path.join(output_folder, f"compressed_{filename}")

            try:
                pdf = PdfDocument(input_path)
                pdf.CompressImages(quality)
                pdf.SaveAs(output_path)
                print(f"Compressed: {filename}")
            except Exception as e:
                print(f"Error compressing {filename}: {e}")
PYTHON

Der Block except verhindert, dass eine einzelne beschädigte oder passwortgeschützte Datei den gesamten Stapelvorgang zum Stillstand bringt. Das Protokollieren des Dateinamens zusammen mit der Fehlermeldung erleichtert es, festzustellen, welche Dateien einer manuellen Überprüfung bedürfen. Für Pipelines mit höherem Volumen sollten Sie in Betracht ziehen, den Ordner in Abschnitte zu unterteilen und diese in parallelen Threads zu verarbeiten.

TippsFür Dokumente, die fotografische Bilder mit technischen Diagrammen mischen, führen Sie zwei Durchgänge durch: Qualität 50 bei Fotos und Qualität 85 bei diagrammreichen Seiten. Extrahieren und erneut zusammenführen Sie mit der PDFs zusammenführen-API, um jeden Abschnitt auf seinem optimalen Qualitätsniveau zu halten.

Welche Qualitätseinstellungen sollten Sie für die PDF-Kompression verwenden?

Die richtige Qualitätseinstellung hängt davon ab, wie das PDF nach der Kompression verwendet wird. Drei Bereiche decken die häufigsten Szenarien ab.

Hohe Qualität (70–90): Dokumente, die für Druck oder formale Verbreitung bestimmt sind, profitieren davon, in diesem Bereich zu bleiben. Text bleibt scharf, und Diagramme bleiben bei Standarddruckauflösungen lesbar. Die Dateigrößenreduktion ist bescheiden, typischerweise 10–25%, aber das Ausgabeergebnis ist für die meisten Leser vom Original kaum zu unterscheiden.

Mittlere Qualität (50–70): Dieser Bereich eignet sich für die Web-Auslieferung und E-Mail-Anhänge. Fotografische Inhalte zeigen bei genauer Betrachtung ein leichtes Erweichen, aber die Reduktion der Dateigröße (oft 25–50%) verbessert maßgeblich die Ladezeiten und die E-Mail-Zustellbarkeit. Die meisten Dokumentenmanagementsysteme und Portal-Uploads funktionieren gut bei Qualität 60.

Aggressive Kompression (30–50): Interne Archive, Langzeitsicherungen und Dokumente, die nicht gedruckt werden müssen, können diesen Bereich nutzen. Bei Qualität 40 sind Bilder merklich weicher, aber Text, der von der PDF-Engine gerendert wird (anstatt als Bilder eingebettet zu sein), bleibt vollständig scharf. Dieser Ansatz eignet sich auch für Dokumente, die in Bilder konvertiert und vor dem Anzeigen skaliert werden.

WichtigBewahren Sie immer die ursprüngliche unkomprimierte Datei zugänglich auf. Die Kompression ist verlustbehaftet für Bilder; es gibt keine Möglichkeit, die ursprünglichen Bilddaten aus einem komprimierten PDF wiederherzustellen.

Wie überprüft man Kompressionsergebnisse in Python?

Die programmgesteuerte Überprüfung der Dateigröße bestätigt, dass die Komprimierung Ihr Ziel erreicht hat, bevor die Datei zum nächsten Schritt in einer Pipeline weitergeleitet wird. Pythons integrierte Funktion os.path.getsize gibt die Byteanzahl für jeden Dateipfad zurück, sodass für die Überprüfung keine zusätzlichen Bibliotheken erforderlich sind.

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/verify-compression.py
import os
from ironpdf import PdfDocument

# Load and compress the document
pdf = PdfDocument("report.pdf")
original_size = os.path.getsize("report.pdf")

pdf.CompressImages(60)
pdf.SaveAs("report_compressed.pdf")

compressed_size = os.path.getsize("report_compressed.pdf")
reduction_pct = (1 - compressed_size / original_size) * 100

# Report results to confirm compression was effective
print(f"Original:   {original_size / 1024:.1f} KB")
print(f"Compressed: {compressed_size / 1024:.1f} KB")
print(f"Reduction:  {reduction_pct:.1f}%")
// DIESE CODE-AUSZUG IST NICHT VERFÜGBAR!
import os
from ironpdf import PdfDocument

# Load and compress the document
pdf = PdfDocument("report.pdf")
original_size = os.path.getsize("report.pdf")

pdf.CompressImages(60)
pdf.SaveAs("report_compressed.pdf")

compressed_size = os.path.getsize("report_compressed.pdf")
reduction_pct = (1 - compressed_size / original_size) * 100

# Report results to confirm compression was effective
print(f"Original:   {original_size / 1024:.1f} KB")
print(f"Compressed: {compressed_size / 1024:.1f} KB")
print(f"Reduction:  {reduction_pct:.1f}%")
PYTHON

Das Ergebnis gibt einen klaren Reduzierungsprozentwert an, den man protokollieren oder gegen einen Schwellenwert überprüfen kann. Wenn die Reduzierung unter den Erwartungen bleibt, enthält das Dokument möglicherweise nur wenige oder gar keine eingebetteten Bilder. In diesem Fall bleibt die Dateigröße unabhängig von der Qualitätseinstellung weitgehend unverändert, da CompressImages nur Rasterbilder betrifft. Text und Vektorgrafiken sind von dieser Methode nicht betroffen.

Hinweis:IronPDFs Komprimierung zielt auf die JPEG-Kodierung für Rasterbilder innerhalb von PDFs. Der JPEG-Kompressionsstandard definiert den Kompromiss zwischen Qualität und Größe, den der Qualitätsparameter steuert. Niedrigere Werte wenden eine stärkere JPEG-Quantisierung an, die sowohl die Dateigröße als auch die Bilddetails reduziert.

Was sind die nächsten Schritte für die PDF-Komprimierung in Python?

Die CompressImages-Methode von IronPDF bietet Python-Entwicklern eine einzige, klar abgegrenzte API zur Reduzierung der Dateigröße von PDF-Dateien. Passen Sie den Qualitätsparameter an, um die Speichereinsparungen gegen die visuelle Wiedergabetreue abzuwägen, und fügen Sie den Boolean zur Auflösungsskalierung für eine zweite Reduktionsrunde hinzu, wenn die Ausgabeabmessungen festgelegt sind. Für einen umfassenderen Überblick darüber, was IronPDF behandeln kann, lesen Sie die Seite Python PDF library overview.

Starten Sie Ihre kostenlose Testversion, um die Kompression zusammen mit dem vollen Funktionsumfang von IronPDF zu testen, einschließlich HTML-zu-PDF-Konvertierung, digitaler Signaturen, Formularverarbeitung und Dokumentenzusammenführung. Wenn die Testphase endet, sehen Sie sich die Lizenzierungsoptionen an, um den Plan zu finden, der zu Ihrer Bereitstellung passt.

Bereit zu sehen, was IronPDF sonst noch kann? Erkunden Sie das vollständige Python PDF-Tutorial für eine schrittweise Einführung in die Kernfunktionen von IronPDF.

Häufig gestellte Fragen

Wie installiere ich IronPDF, um PDFs in Python zu komprimieren?

Führen Sie pip install ironpdf in Ihrem Terminal aus. IronPDF for Python erfordert, dass das .NET 6.0 SDK zuerst installiert wird. Nach der Installation importieren Sie PdfDocument aus dem ironpdf-Paket, um mit der Komprimierung von PDFs zu beginnen.

Was ist der grundlegende Code, um eine PDF-Datei in Python zu komprimieren?

Laden Sie die Datei mit PdfDocument("your-file.pdf"), rufen Sie CompressImages(60) mit einem Qualitätswert von 1 bis 100 auf und speichern Sie das Ergebnis mit SaveAs("compressed.pdf"). Passen Sie den Qualitätswert an, um die Dateigröße gegen die Bildtreue abzuwägen.

Wie wirkt sich der Qualitätsparameter auf die PDF-Komprimierung aus?

Der CompressImages-Qualitätsparameter reicht von 1 bis 100. Niedrigere Werte erzeugen kleinere Dateien mit stärkerer Bildweichzeichnung. Höhere Werte behalten mehr Details auf Kosten einer größeren Datei bei. Werte zwischen 40 und 80 decken die meisten praktischen Anwendungsfälle ab, wobei 60 als üblicher Ausgangspunkt gilt.

Kann ich ein zweites Argument an CompressImages übergeben?

Ja. Das Übergeben von True als zweites Argument teilt IronPDF mit, dass jedes Bild vor der Anwendung der Qualitätskomprimierung auf die sichtbaren Abmessungen auf der Seite resampelt wird. Dies fügt einen zweiten Reduzierungsschritt hinzu und erzeugt kleinere Dateien, aber Seiten, die danach skaliert oder mit höherer DPI gedruckt werden, können Artefakte aufweisen.

Beeinflusst die PDF-Komprimierung Text und Vektorgrafiken?

CompressImages zielt auf Rasterbilder ab, die im PDF eingebettet sind. Text, der vom PDF-Motor gerendert wird, und Vektorgrafiken sind von dieser Methode nicht betroffen, sodass Dokumente mit wenig oder gar keiner eingebetteten Bilddateien nur minimal verkleinert werden.

Wie überprüfe ich die Dateigrößenreduzierung in Python?

Verwenden Sie os.path.getsize("compressed.pdf"), um die Bytegröße der gespeicherten Datei zu ermitteln, und vergleichen Sie sie mit dem Original. Durch Teilen der Differenz durch die Originalgröße erhalten Sie die Reduktionsrate als Fließkommazahl.

Welche Qualitätsstufe ist am besten für die Webauslieferung?

Eine Qualitätseinstellung zwischen 50 und 70 eignet sich für die meisten Webauslieferungen und E-Mail-Szenarien. Dieser Bereich reduziert typischerweise die Dateigröße um 25 bis 50 Prozent, während der fotografische Inhalt für das Bildschirmlesen visuell akzeptabel bleibt.

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
Bereit anzufangen?
Version: 2026.5 just released
Still Scrolling Icon

Scrollst du immer noch?

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