Login
Newsletter
Mi, 11. August 2004, 20:44

PostScript- und PDF-Verarbeitung

Jeder kennt wohl das Problem: Man hat Postscript- oder PDF-Dateien, die zusammengefasst, konvertiert, n-up gesetzt (n Seiten auf einer) und zum Schluss vielleicht manuell duplex gedruckt werden wollen.

Häufig kommt man da um die Kommandozeile nicht herum. Und ich fürchte, die meisten haben die Erfahrung gemacht, dass das trotzdem oft nicht so klappt, wie man gerne hätte - inzwischen habe ich einen netten Satz von Kommandozeilen-Tools gefunden und gerade die besten scheinen kaum bekannt zu sein. Das Schöne ist: Alle vorgestellten Programme sind als fertige Pakete in Debian Unstable enthalten.

Im folgenden stelle ich alle Programme nur ganz kurz und mit einem typischen Aufruf vor. Nähere Infos und die volle Funktionalität erfährt man wie üblich aus der entsprechenden Programmdokumentation.

Postscript n-up

Am bekanntesten ist hier psnup aus den psutils - leider erzeugt das nicht standardkonformes Postscript, was mein CUPS mit dem GimpPrint Epson Treiber veranlasst, außer tollen Streifen nicht viel zu drucken. mpage erledigt dieselbe Aufgabe und erzeugt hier wesentlich bessere Resultate:

mpage -2 eingabe.ps > ausgabe.ps

Debian: http://packages.debian.org/unstable/text/mpage
Upstream: http://www.mesa.nl/pub/mpage/

Nur der Vollständigkeit halber: impose+ soll das gleiche erledigen und dabei noch direkt die Seiten abhängig von ihrer Bounding Box so gut wie möglich vergrößern, hat bei meinen Tests aber leider nicht funktioniert.

Debian: http://packages.debian.org/unstable/text/impose+
Upstream: http://imagic.weizmann.ac.il/~dov/freesw/impose+/

PDF n-up setzen

Meistens wird hier pdf2ps (siehe dazu weiter unten) gefolgt von psnup verwendet - urgs. ;) Das dauert ewig und funktioniert bei viel zu vielen PDFs leider nicht zuverlässig. Viel schöner ist:

pdfnup --nup 2x1 eingabe.pdf
# ausgabe heißt dann "eingabe-2x1.pdf"

Das ist nicht nur sehr viel schneller, sondern auch sehr viel zuverlässiger und die erzeugten PDFs werden nicht, wie oft bei pdf2ps, teilweise gerastert und behalten so eine bessere Qualität bei kleinerer Dateigröße. Lustig: pdfnup verwendet pdflatex, um das Originaldokument n-up zu setzen. ;) pdfnup gehört zur Toolsammlung pdfjam, welche auch ein Skript für das Drehen der Seiten in einem PDF und für das Zusammenfügen (siehe auch unten) von PDFs enthält.

Debian: http://packages.debian.org/unstable/text/pdfjam
Upstream: http://www2.warwick.ac.uk/fac/sci/statistics/staff/academic/firth/software/pdfjam/

PDFs zusammenführen, splitten, (de)komprimieren, ...

pdftk (PDF ToolKit) ist das reinste Multifunktionswerkzeug für PDFs. Die Funktionen sind zu zahlreich, um hier aussagekräftige Beispiele geben zu können, aber pdftk kann PDFs zusammenfügen, einzelne Seiten oder Bereiche einer PDF-Datei extrahieren, PDFs ver- und entschlüsseln sowie komprimieren, usw...

Das Interessante an diesem Programm: Es ist in C++ geschrieben und verwendet eine mit gcj kompilierte Java-Bibliothek für die PDF-Operationen.

Debian: http://packages.debian.org/unstable/text/pdftk
Upstream: http://www.accesspdf.com/pdftk/

Grafiken aus PDFs extrahieren

pdfimages von xpdf erlaubt es, alle oder einige Bitmap-Grafiken aus einem PDF zu extrahieren, ohne dass die Grafik vorher umgerechnet werden muss. Das geht zum einen schneller und zum anderen verlieren die Grafiken so keine Qualität:

pdfimages -j pdf_mit_bildern.pdf bilderserie

Das extrahiert alle Bitmap-Grafiken aus pdf_mit_bildern.pdf und speichert diese unter den Namen bilderserie<nummer>.<ext>. <ext> ist dabei pbm bei Schwarzweiß-Grafiken, ppm bei anderen Grafiken und (dank "-j") jpg bei JPEG-komprimierten Grafiken im PDF.

Debian: http://packages.debian.org/unstable/text/xpdf-utils Upstream: http://www.foolabs.com/xpdf/

PDFs nach PostScript konvertieren

Hier wird eigentlich immer pdf2ps verwendet, welches auf Ghostscript aufsetzt. Aktuelle Ghostscript-Versionen kommen dabei mit PDF schon wesentlich besser klar als ältere, aber pdftops (Man beachte den Unterschied! ;), welches auf der xpdf-Engine basiert, erledigt die Konvertierung oft noch deutlich besser. Es werden keine Elemente gerastert und die erzeugten Postscript-Dateien sind meistens wesentlich kleiner als pdf2ps-erzeugte und lassen sich auch problemloser weiterverarbeiten.

pdftops eingabe.pdf # erzeugt wird eingabe.ps

Debian: http://packages.debian.org/unstable/text/xpdf-utils
Upstream: http://www.foolabs.com/xpdf/

Vor allem durch geschickte Kombination der Programme sind bei mir, was PDF- und Postscript-Verarbeitung angeht, inzwischen kaum noch Wünsche offen. (Mit der Kombination von pdfnup gefolgt von pdftk cat lassen sich mehrere zusammengehörende PDF-Dateien toll manuell duplex drucken. Ich hoffe, dass der ein oder andere eines der vorgestellten Programme noch nicht kennt und etwas damit anfangen kann. :-)

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten