Strukturoptimierung oder Neuaufbau: Welches Werkzeug passt?
Die beiden Programme gehen grundsätzlich verschieden vor. Der QPDF-Befehl auf dieser Seite lässt den Inhalt deiner Seiten stehen und speichert nur die Objekte der Datei neu und möglichst kompakt. Dafür bündelt er zum Beispiel Objekte in Objektstreams und komprimiert Flate-Daten neu. Bilder rechnet er dabei weder herunter, noch kodiert er sie als JPEG neu. Die optionale Bildoptimierung von QPDF ist ein eigener, verlustbehafteter Schritt, den der nächste Abschnitt kurz einordnet. Die einzelnen Optionen beschreibt die QPDF-Dokumentation.
Ghostscript arbeitet anders. Mit dem Ausgabegerät pdfwrite liest es die PDF ein und erzeugt aus den Zeichenanweisungen jeder Seite eine neue Datei. Text und Vektorgrafik bleiben dabei in der Regel als solche erhalten, die Seiten werden also nicht einfach zu Bildern. Je nach Einstellung kann Ghostscript aber Bilder neu berechnen. Außerdem kann sich alles verändern, was nicht zum sichtbaren Seitenbild gehört. Das erklärt das Ghostscript-Handbuch zu pdfwrite.
Manche Programme bieten noch einen dritten Weg an: Sie geben jede Seite als Bild neu aus. Dabei gehen nativer Text, die Suche und interaktive Elemente in der Regel verloren. Keiner der beiden Befehle auf dieser Seite arbeitet so.
Keines dieser Verfahren garantiert eine kleinere Datei. Als Faustregel gilt: Besteht deine PDF vor allem aus Text und Vektorgrafik, beginne mit QPDF. Das gilt auch, wenn sich an Bildern, Links oder Formularen möglichst wenig ändern soll. Ghostscript kommt infrage, wenn große Fotos oder Scans das Gewicht ausmachen und du dafür etwas Bildqualität aufgeben kannst. Was verlustfrei und verlustbehaftet konkret bedeutet, erklärt der Ratgeber PDF komprimieren ohne Qualitätsverlust.
Grafische Programme folgen denselben Wegen. PDFsam unterscheidet nach eigenen Angaben zwischen der reinen Strukturoptimierung in der Ausgabe Basic und einer eigenen Bildkomprimierung in den Ausgaben Visual und Enhanced. Ältere Anleitungen für Dateimanager-Skripte oder Oberflächen, die Ghostscript im Hintergrund aufrufen, beziehen sich teils auf frühere Ubuntu-Versionen. Übernimm ihre Installationsschritte deshalb nicht ungeprüft. PDF24 Creator gibt es laut Hersteller nur für Windows, eine Linux-Ausgabe bietet er nicht an.
Wenn du nichts installieren willst, kannst du den PDF-Kompressor im Browser verwenden. Er verarbeitet die Datei auf deinem Gerät, ohne sie hochzuladen. In Linux-Browsern haben wir ihn allerdings nicht eigens getestet. Wie sich browserlokale Verarbeitung von echter Offline-Arbeit unterscheidet, steht im Ratgeber PDF komprimieren ohne Upload.
Version prüfen und in eine separate Ausgabedatei schreiben
Die Befehle im Überblick
Wähle einen der sechs Befehle aus diesem Ratgeber. Du siehst den Befehl unverändert und erfährst, wofür jeder Teil steht.
Die Befehle stammen aus den offiziellen Handbüchern von QPDF und Ghostscript. Wir haben sie nicht selbst unter Ubuntu oder einer anderen Distribution ausgeführt. Die installierten Versionen auf deinem System können sich vom Stand der Online-Dokumentation unterscheiden.
Diese Seite führt keine Befehle aus und zeigt keine Terminalausgabe. Was dein System meldet, siehst du erst, wenn du einen Befehl selbst ausführst.
QPDF-Version anzeigen
Zeigt die installierte QPDF-Version an. Prüfe sie, bevor du die übrigen Befehle verwendest.
qpdf --versionDu kannst den Befehl auch direkt im Codefeld markieren und kopieren.
Die Teile des Befehls
qpdfProgramm- Ruft das Kommandozeilenprogramm QPDF auf.
--versionVersion anzeigen- Gibt die Version aus, mit der QPDF auf deinem System arbeitet.
Meldet die Shell, dass der Befehl nicht gefunden wurde, ist QPDF vermutlich nicht installiert. Paketname und Installation hängen von deiner Distribution ab.
Stelle im RatgeberGhostscript-Version und Ausgabegeräte anzeigen
Zeigt die Ghostscript-Version und die verfügbaren Ausgabegeräte an.
gs -hDu kannst den Befehl auch direkt im Codefeld markieren und kopieren.
Die Teile des Befehls
gsProgramm- Ruft Ghostscript auf. Unter Unix heißt das Programm gs.
-hHilfe- Gibt Version, Optionen, Formate, verfügbare Ausgabegeräte und Suchpfad aus.
Meldet die Shell, dass der Befehl nicht gefunden wurde, ist Ghostscript vermutlich nicht installiert. Notiere dir Distribution und Version, damit du Ergebnisse später nachvollziehen kannst.
Stelle im RatgeberStruktur kompakter speichern
Speichert die Objekte der Datei neu und möglichst kompakt. Bilder werden dabei weder heruntergerechnet noch als JPEG neu kodiert.
qpdf "original.pdf" --object-streams=generate --compress-streams=y --decode-level=generalized --recompress-flate --compression-level=9 "optimiert-qpdf.pdf"Du kannst den Befehl auch direkt im Codefeld markieren und kopieren.
Die Teile des Befehls
qpdfProgramm- Ruft das Kommandozeilenprogramm QPDF auf.
"original.pdf"Eingabedatei- Die PDF, die gelesen wird. Das Ergebnis landet in einer separaten Datei.
--object-streams=generateObjektstreams erzeugen- Bündelt geeignete Objekte in Objektstreams und komprimiert sie. Die Ausgabe hat dann mindestens die PDF-Version 1.5.
--compress-streams=yStreams komprimieren- Komprimiert Streams mit Flate, sofern sie nicht schon anders komprimiert sind.
--decode-level=generalizedAllgemeine Filter entpacken- Entpackt Daten mit unterstützten allgemeinen Filtern wie LZW, Flate, ASCII85 und ASCIIHex. JPEG-Daten (DCT) werden dabei nicht entpackt.
--recompress-flateFlate neu komprimieren- Entpackt vorhandene Flate-Streams und komprimiert sie neu. Das Schreiben kann dadurch länger dauern.
--compression-level=9Kompressionsstufe- Wählt für Flate die höchste zlib-Stufe im dokumentierten Bereich von 1 bis 9. Höhere Stufen brauchen mehr Zeit. Mit JPEG-Qualität hat der Wert nichts zu tun.
"optimiert-qpdf.pdf"Ausgabedatei- Name der neuen Datei. In den beiden Prüfbefehlen ist sie die Eingabe.
Ob die neue Datei kleiner ist, zeigt erst der Vergleich der Bytezahl. Ein eigener Ausgabename schützt nicht davor, eine vorhandene Datei gleichen Namens zu überschreiben. Wähle daher einen noch unbenutzten Namen. Ob eine digitale Signatur gültig bleibt, sichert der Befehl nicht zu.
Stelle im RatgeberPDF mit pdfwrite neu aufbauen
Ghostscript liest die PDF ein und erzeugt aus den Zeichenanweisungen jeder Seite eine neue Datei, hier mit der Vorgabe /ebook.
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="optimiert-gs.pdf" "original.pdf"Du kannst den Befehl auch direkt im Codefeld markieren und kopieren.
Die Teile des Befehls
gsProgramm- Ruft Ghostscript auf.
-dSAFERZugriffskontrolle- Schränkt den Zugriff auf Dateien und Geräte ein. Seit Version 9.50 ist das Standard. Eine allgemeine Sicherheitsgarantie ist es nicht.
-dBATCHDanach beenden- Beendet Ghostscript, sobald die angegebenen Dateien verarbeitet sind, statt in den interaktiven Modus zu wechseln.
-dNOPAUSEOhne Pause- Unterdrückt die Nachfrage und Pause am Ende jeder Seite.
-sDEVICE=pdfwriteAusgabegerät- Wählt pdfwrite, das eine neue PDF erzeugt. Text und Vektorgrafik bleiben in der Regel erhalten. Alles, was nicht zum sichtbaren Seitenbild gehört, kann sich ändern.
-dPDFSETTINGS=/ebookVorgabe- Setzt ein Bündel von Einzelparametern mit mittlerer Bildauflösung. Der Name beschreibt einen Einsatzzweck, keine Qualitätsstufe und keine sichere Ersparnis.
-sOutputFile="optimiert-gs.pdf"Ausgabedatei- Legt den Namen der neuen Datei fest.
"original.pdf"Eingabedatei- Die PDF, die Ghostscript einliest.
Bilddetails und Dokumentfunktionen können sich ändern, auch wenn die Seiten gleich aussehen. Eine bestimmte Größe oder Qualität ist nicht zugesagt. Prüfe die gespeicherte Ausgabe und wähle einen noch unbenutzten Ausgabenamen.
Stelle im RatgeberAufbau der Ausgabe prüfen
Prüft die Syntax der gespeicherten Ausgabe. Für das Ghostscript-Ergebnis ersetzt du den Dateinamen.
qpdf "optimiert-qpdf.pdf" --checkDu kannst den Befehl auch direkt im Codefeld markieren und kopieren.
Die Teile des Befehls
qpdfProgramm- Ruft das Kommandozeilenprogramm QPDF auf.
"optimiert-qpdf.pdf"Zu prüfende Datei- Die zuvor gespeicherte Ausgabe des QPDF-Befehls.
--checkAufbau prüfen- Prüft Struktur, Verschlüsselung, Linearisierung und Kodierung der Streams.
Rückgabewert 0 steht für eine fehlerfreie Prüfung, 2 für Fehler, 3 für Warnungen. Die Prüfung betrifft nur den Aufbau der Datei. Ob sie richtig aussieht, ob Formulare und Links funktionieren oder ob sie unbedenklich ist, zeigt sie nicht.
Stelle im RatgeberSeitenzahl ausgeben
Gibt die Seitenzahl der gespeicherten Ausgabe aus. Führe den Befehl mit dem Namen des Originals erneut aus und vergleiche beide Zahlen.
qpdf "optimiert-qpdf.pdf" --show-npagesDu kannst den Befehl auch direkt im Codefeld markieren und kopieren.
Die Teile des Befehls
qpdfProgramm- Ruft das Kommandozeilenprogramm QPDF auf.
"optimiert-qpdf.pdf"Zu zählende Datei- Die zuvor gespeicherte Ausgabe des QPDF-Befehls.
--show-npagesSeiten zählen- Gibt die Anzahl der Seiten der angegebenen Datei aus.
Eine gleiche Seitenzahl heißt nicht, dass Inhalt, Bilder und Funktionen unverändert sind. Sieh dir die Seiten selbst an.
Stelle im RatgeberDie Schaltfläche schreibt nur nach deinem Klick den angezeigten Befehl in die Zwischenablage. Sie liest die Zwischenablage nicht, speichert nichts und sendet nichts.
Die Befehle auf dieser Seite stammen aus den offiziellen Handbüchern von QPDF und Ghostscript. Wir haben sie nicht selbst unter Ubuntu oder einer anderen Distribution ausgeführt, es ist also keine getestete Ubuntu-Anleitung. Prüfe zuerst, welche Versionen auf deinem System installiert sind. Die Pakete deiner Distribution können sich vom Stand der aktuellen Online-Dokumentation unterscheiden.
Installierte Versionen anzeigen
qpdf --versiongs -hMeldet die Shell, dass ein Befehl nicht gefunden wurde, ist das Programm vermutlich nicht installiert. Wie das Paket heißt und wie du es installierst, hängt von deiner Distribution ab. Notiere dir Distribution und Versionen, damit du ein Ergebnis später nachvollziehen kannst.
Grundregeln für jeden Versuch
- Lass das Original unangetastet. Eingabe und Ausgabe bekommen immer unterschiedliche Dateinamen.
- Gib jeder Ausgabe einen neuen, noch nicht verwendeten Namen, damit du keine frühere Datei überschreibst.
- Starte jeden weiteren Versuch wieder mit dem Original und nicht mit dem Ergebnis des vorigen Durchlaufs.
- Verwende keine Optionen oder Skripte, die die Eingabedatei direkt ersetzen.
QPDF: Speicherstruktur optimieren
qpdf "original.pdf" --object-streams=generate --compress-streams=y --decode-level=generalized --recompress-flate --compression-level=9 "optimiert-qpdf.pdf"Der Befehl liest original.pdf und schreibt eine neue Datei namens optimiert-qpdf.pdf. Die Optionen sorgen dafür, dass Objekte in Objektstreams gebündelt, Datenströme komprimiert und Flate-Daten mit der höchsten Stufe neu komprimiert werden. Eine Bildneuberechnung gehört nicht dazu. Objektstreams setzen PDF 1.5 voraus. Verlangt ein Empfänger ausdrücklich eine ältere PDF-Version, passt dieser Befehl nicht ohne Weiteres.
QPDF kann zusätzlich Bilder optimieren und JPEG-Daten mit einer wählbaren Qualität neu kodieren. Die Option für die JPEG-Qualität gibt es ab Version 12.1. Beides ist verlustbehaftet und kann bereits komprimierte JPEG-Bilder weiter verschlechtern. Nutze es nur, wenn du die Bilder danach gezielt prüfst.
Ghostscript: PDF mit einer Vorgabe neu schreiben
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="optimiert-gs.pdf" "original.pdf"-sDEVICE=pdfwrite wählt die PDF-Ausgabe, -sOutputFile legt den Namen der neuen Datei fest, und die Eingabedatei steht am Ende. -dBATCH und -dNOPAUSE verhindern, dass Ghostscript auf Eingaben wartet. -dSAFER steht so auch in den Beispielen der Ghostscript-Anleitung zur Befehlszeile. Die Vorgabe /ebook ist nur ein Ausgangspunkt und keine Empfehlung für jede Datei.
Ghostscript-Vorgaben richtig verstehen
Mit -dPDFSETTINGS wählst du ein ganzes Bündel von Einzelparametern auf einmal. Der Name einer Vorgabe beschreibt einen Einsatzzweck. Er steht weder für eine Qualitätsstufe noch für eine bestimmte Ersparnis.
Ist /prepress also die beste Qualität? Nein. Das Handbuch weist ausdrücklich darauf hin, dass /prepress nicht die originalgetreueste Einstellung ist. Ohne -dPDFSETTINGS kann das Ergebnis dem Original näher bleiben. Die kleinste Datei liefert /prepress ebenfalls nicht garantiert.
Die Zielwerte bei /screen und /ebook bedeuten nicht, dass danach jedes Bild genau 72 oder 150 dpi hat. Bilder unterhalb der Schwelle werden nicht heruntergerechnet und behalten ihre Auflösung. Völlig unverändert bleiben sie deshalb nicht zwingend, denn die übrigen Parameter der Vorgabe, etwa zur Bildkodierung oder zu Farben, können sie trotzdem verändern. Die Option -r ist kein Ersatz für das Herunterrechnen. Sie steuert nur die Auflösung, wenn Ghostscript Teile ersatzweise rendern muss, und verkleinert keine eingebetteten Bilder. Laut Handbuch ist es oft besser, gezielt einzelne Parameter zu setzen, statt sich auf eine Vorgabe zu verlassen.
Nutze nicht eine Vorgabe für alle Dateien. Ein Textdokument, ein Fotokatalog und ein Scan reagieren unterschiedlich. Bei Scans setzt du am besten schon beim Scannen an. Wie das geht, erklärt der Ratgeber Gescannte PDF verkleinern.
Text, Links, Formulare und Signaturen prüfen
Dass eine PDF nach dem Komprimieren genauso aussieht, beweist nicht, dass alles Gespeicherte erhalten blieb. Ghostscript baut die Datei neu auf. Laut der Ghostscript-Erklärung zur PDF-Optimierung kann ein gleiches Erscheinungsbild geänderte Anweisungen und Metadaten verbergen. Auch nach QPDF prüfst du die Funktionen, auf die es dir ankommt:
- Markiere und kopiere Text und probiere die Suche aus.
- Klicke Links und Lesezeichen an.
- Fülle Formularfelder aus und speichere sie testweise, wenn die Datei ein Formular ist.
- Kontrolliere Angaben wie Titel oder Autor, wenn ein Empfänger sie auswertet.
- Wird ein bestimmter Standard wie PDF/A verlangt, prüfe ihn mit einem dafür vorgesehenen Werkzeug. Keiner der Befehle hier sichert diesen Status zu.
Digital signierte PDFs
Ob eine digitale Signatur nach dem Neuschreiben noch gültig ist, kann dir keiner der beiden Befehle zusichern. Komprimieren ist deshalb kein Weg, eine signierte PDF zu verkleinern. Behalte das signierte Original unverändert. Hat jemand anderes das Dokument signiert und brauchst du eine kleinere Fassung, besorge dir die unsignierte Ausgangsdatei oder sprich mit dem Unterzeichner. Eine erneute Signatur stimmst du mit Aussteller oder Empfänger ab. Hintergründe dazu bietet Adobe zu Einschränkungen signierter PDFs. Eine eingescannte, sichtbare Unterschrift ist keine digitale Signatur.
Passwortschutz oder Bearbeitungsbeschränkungen aufzuheben, gehört nicht zum Verkleinern, und dafür findest du hier keine Befehle. Bitte stattdessen den Absender um eine passende Fassung. Mehr zum Umgang mit solchen Dokumenten steht im Ratgeber Signaturen und Formulare verstehen.
Ergebnisgröße vergleichen und das Original behalten
Dass ein Befehl ohne Fehlermeldung durchläuft, sagt noch nichts über das Ergebnis. Vergleiche die exakte Größe von Original und Ausgabedatei in Byte, nicht nur gerundete Angaben in MB. Wie viel Prozent du gespart hast, rechnest du mit dem Kompressionsrate-Rechner nach.
Syntax und Seitenzahl prüfen
qpdf "optimiert-qpdf.pdf" --checkQPDF meldet mit dem Rückgabewert 0 eine fehlerfreie Prüfung, mit 2 Fehler und mit 3 Warnungen. Die Prüfung betrifft nur den Aufbau der Datei. Ob Formulare, Links und Bilder noch so funktionieren und aussehen wie vorher, verrät sie nicht.
qpdf "optimiert-qpdf.pdf" --show-npagesIn einem PDF-Betrachter kontrollieren
- Öffne die gespeicherte Ausgabedatei neu aus ihrem Ordner.
- Blättere alle Seiten durch und vergleiche Seitenformat und Ausrichtung mit dem Original.
- Sieh dir Bilder, kleine Schrift und feine Linien bei hoher Vergrößerung an.
- Teste Suche, Links und Formulare wie im vorigen Abschnitt beschrieben.
- Öffne die Datei nach Möglichkeit auch in einem zweiten Betrachter.
Größer, unverändert oder leer?
Ghostscript kann eine PDF auch größer machen. Die Datei wird neu aufgebaut und anders kodiert, und die neuen Anweisungen brauchen manchmal mehr Platz als die alten. Bei QPDF ist ebenfalls wenig zu holen, wenn die Datei schon kompakt gespeichert ist.
Ein größeres oder kaum kleineres Ergebnis kann trotzdem ein gültiges Ergebnis sein. Ob es das ist, zeigen erst dieselben Prüfungen der gespeicherten Datei wie bei jeder anderen Ausgabe, denn die Größe allein sagt nichts über Fehler oder verlorene Funktionen. Behalte am Ende die besser geeignete Datei, oft ist das schlicht das Original. Anders ist es bei einer leeren, unlesbaren oder beschädigten Ausgabe. Das ist ein fehlgeschlagener Versuch und keine besonders starke Komprimierung. Verschicke diese Datei nicht, lies die Meldungen im Terminal und starte erneut mit dem Original und einem neuen Ausgabenamen.
Bleibt die PDF für das Limit eines Empfängers zu groß, findest du die nächsten Schritte im Ratgeber PDF wird nicht kleiner. Bewahre das Original in jedem Fall auf, bis die neue Fassung angekommen und angenommen ist.