Dies ist eine alte Version des Dokuments!
PDF Dokumente verkleinern
An und ab kann es vorkommen, dass PDF-Unterlagen, speziell wenn sich darin eingescannte Dokumente und Unterlagen befinden, in Ihrer Größe stark anwachsen. Möchte man diese Unterlagen per eMail verschicken oder z.B. in einem Bewerbungsportal hochladen, kann das mitunter recht schnell auf Empfänger- oder Senderseite Unmut verursachen.
In nachfolgendem Beispiel wollen wir uns daher mit einer Lösung beschäftigen, entsprechende Unterlagen und Dokumente in Ihrer Größe unter der Inkaufnahme gewisser (optischer) Qualitätseinbußen. Aktuell halten wir in einem entsprechenden Beispiel fünf Dateien mit einer Gesamtgröße von 55 MB vor.
$ ll -h
insgesamt 55M -rw-rw-r--. 1 django django 1,7M 4. Mai 17:28 Bescheinigungen.pdf -rw-rw-r--. 1 django django 14M 5. Mai 10:13 Bewerbung_LINUX_System-_und_Webadministrator.pdf -rw-rw-r--. 1 django django 1,7M 4. Mai 17:23 Urkunden.pdf -rw-rw-r--. 1 django django 26M 4. Mai 17:48 Zertifikate.pdf -rw-rw-r--. 1 django django 13M 4. Mai 17:19 Zeugnisse.pdf
Diese Daten können wir natürlich nicht am Stück per eMail verschicken, da diese eindeutig zu groß für den Mailversand sind.
Zum Verringern der Datenmenge greifen wir auf die Scriptoptionen, die z.B. auf Milan Kupcevic's Seite zu Ghostcript PDF Reference & Tips dokumentiert sind, zurück. Der Aufruf auf der Linux-Konsole ist beim Verringern durchaus umfangreich, wenn wir einen Blick auf nachfolgendes Beispiel werfen.
$ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH -dPDFSETTINGS=/ebook \ -sOutputFile=zeugnisse.pdf Zeugnisse.pdf
Auf Dauer kann man sich natürlich einen derartig umfangreichen Befehlsaufruf nicht merken. Daher legen wir uns einfach ein kleines Shell-Script an, welchem wir dann die notwendigen Optionen beim Aufruf mitgeben. Dieses Script legen wir im bin
-Verzeichnis des betreffenden Benutzers an; bei Bedarf erzeugen wir das betreffende Verzeichnis wie folgt-
# mkdir -p ~/bin/
Dort legen wir folgendes Script ab:
# vim ~/bin/pdf-shrink
- ~/bin/pdf-shrink
#!/bin/bash if [ -z "$1" ] && [ -z "$2" ] && [ -z "$3" ] then echo "" echo "usage: pdf-shrink input.pdf output.pdf quality" echo " quality : screen = screen-view-only quality, 72 dpi images" echo " ebook = low quality, 150 dpi images" echo " printer = high quality, 300 dpi images" echo " prepress = high quality, color preserving, 300 dpi images" echo "" else /usr/bin/gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH -dPDFSETTINGS=/$3 -sOutputFile=$2 $1 fi
Anschließend statten wir das Shell-Script zur einfachen Ausführung mit den x
-Rechten aus.
# chmod +x ~/bin/pdf-shrink
Rufen wir das Script ohne Angabe zusätzlicher Parameter auf, erhalten wir eine kurze Beschreibung mit den in Frage kommenden Optionen.
$ pdf-shrink
usage: pdf-shrink input.pdf output.pdf quality quality : screen = screen-view-only quality, 72 dpi images ebook = low quality, 150 dpi images printer = high quality, 300 dpi images prepress = high quality, color preserving, 300 dpi images
Wollen wir also in unserem Beispiel hier die 26 MByte große PDF-Datei Zertifikate.pdf Vergleinern rufen wir unser Shell-Script mit folgenden Parametern auf:
$ pdf-shrink Zertifikate.pdf Zertifikate_shrinked.pdf ebook
Nach kurzer Zeit haben wir nun ein PDF-Dokument welches nur noch 18% der ursprünglichen Größe aufweist.
$ ll -h Zertifikate*
-rw-rw-r--. 1 django django 26M 4. Mai 17:48 Zertifikate.pdf -rw-rw-r--. 1 django django 4,7M 25. Mai 15:50 Zertifikate_shrinked.pdf
In unserem gezeigten Beispiel verringert sich somit die Speichermenge von 55 MB auf 12 MB, so dass wir die gesamten Unterlagen nunmehr locker via eMail verschicken können.
$ ll -h
insgesamt 12M -rw-rw-r--. 1 django django 428K 25. Mai 15:57 Bescheinigungen_shrinked.pdf -rw-rw-r--. 1 django django 3,2M 25. Mai 15:57 Bewerbung_LINUX_System-_und_Webadministrator_shrinked.pdf -rw-rw-r--. 1 django django 384K 25. Mai 15:57 Urkunden_shrinked.pdf -rw-rw-r--. 1 django django 4,7M 25. Mai 15:50 Zertifikate_shrinked.pdf -rw-rw-r--. 1 django django 2,7M 25. Mai 15:58 Zeugnisse_shrinked.pdf