PDF-Dateien kleiner machen

Eben stand ich vor einem großen Problem. Ich hatte eine aus 17 einzelnen PDF-Dateien zusammengebaute PDF-Datei deren Größe ich deutlich reduzieren musste, damit ich sie in einem Forum als Anhang verwenden kann. Die Datei war 7 MB groß und somit fast doppelt so groß wie erlaubt. Eine kurze Suche machte mich darauf aufmerksam, dass sich PDFs mittels convert comprimieren lassen. Der Befehl dazu lautet:

convert INPUT.pdf -compress Zip OUTPUT.pdf

Die gute Nachricht: Die Datei schrumpft auf fast 10% ihrer ehemaligen Größe.
Die schlechte Nachricht: Das sieht man ihr leider auch an. Bilder aber auch der Text wirken deutlich unschärfer und verpixelt.

Sehr viel besser gefällt mir da die Lösung, die nullglob auf stackoverflow.com vorgeschlagen hat:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=OUTPUT.pdf INPUT.pdf

Der Befehl ist zugegebener Maßen etwas sperrig, aber dafür tut er was er soll. Das PDF schrumpft auf rund 1,5 MB und ist damit nur knapp doppelt so groß wie das Ergebnis was convert produziert hat. Dafür lässt sie sich visuell kaum vom Original unterscheiden. Bezogen auf die Ausgangsdatei beträgt die Größe um die 20%. Das reicht für meine Zwecke völlig.

Update: Da mir vor kurzem die Kompression des gs-Befehls weiter oben zu stark war, habe ich mich nochmal etwas weiter belesen. Auf milan.kupcevic.net werden neben dem oben verwendeten -dPDFSETTINGS=/screen noch folgende sinnvolle Alternativen aufgeführt:

  • -dPDFSETTINGS=/screen (screen-view-only quality, 72 dpi images)
  • -dPDFSETTINGS=/ebook (low quality, 150 dpi images)
  • -dPDFSETTINGS=/printer (high quality, 300 dpi images)