Komprimieren von PDF-Dateien in Python
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
Minimaler Arbeitsablauf (5 Schritte)
- Installieren Sie die Python-Bibliothek, die zur Komprimierung von PDF-Dateien benötigt wird
- Laden Sie ein PDF-Dokument mit
PdfDocument - Rufen Sie
CompressImagesmit einem Qualitätsinteger (1–100) auf - Speichern Sie die Datei mit reduzierter Größe mit
SaveAs - Überprüfen Sie die Ausgabe in einem beliebigen PDF-Viewer, um die Qualität zu bestätigen
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
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")
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
Falseist. BeiTruewird 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?
![]()
Wie sieht die PDF-Datei nach der Komprimierung aus?
![]()
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}")
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.
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.
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}%")
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.
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.

