Im zweiten Teil unserer Serie zu Postscript und PDF geht es Werkzeuge zum Zerlegen und Zusammenfügen von Dokumenten.
Serie Postscript/PDF-Tools
| Teil 1 | Anzeigen und Konvertieren | LU 08/2009 |
| Teil 2 | Zerlegen und Zusammensetzen | LU 09/2009 |
Jeder von uns kennt das Problem: Vor uns liegt ein mehrseitiges, großes Dokument – und daraus brauchen wir nur eine einzige Seite. Alles andere nimmt nur unnötig Platz weg, interessiert uns im Moment nicht oder lenkt uns gar von Wichtigerem ab. Die bisher übliche Verwendung von Scanner und Schere beziehungsweise der Ausdruck eines Bildschirmfoto sind sicher ein gut gemeinter Schritt in die richtige Richtung, führen aber zu aufwändigen Experimenten mit anderen Tools. Bei der Einmaligkeit des Vorgangs ist der Aufwand vielleicht noch vertretbar. Spätestens dann, wenn eine gewisse Regelmäßigkeit einkehrt, steigt die Sehnsucht nach einer Alternative, welche der Qualität des Dokuments und der vorhandenen Zeit gerecht wird.
Auseinandergezupft
Ein Blick in das wohlsortierte Linux-Werkzeugkasten-Sortiment fördert für Postscript das Paket Psutils [1] und für PDF die Tools Pdftk [2] und Pdfjam [3] zu Tage. Darin verbergen sich die Programme psselect, psmerge, pdftk, pdfjam und pdfjoin.
Um etwa die 42. Seite aus einem Postscript-Dokument zu extrahieren, bemühen Sie am besten das Tool psselect:
$ psselect -q -p42 voll.ps s42.ps
In der Datei s42.ps befindet sich jetzt nur noch eine Seite. Die Option -q sorgt dafür, dass die Seitennummerierung beibehalten wird, die Option -p gibt die Seitennummer (“page”) an. Zu beachten: Zwischen der Option und dem zugehörigen Wert dürfen keine Leerzeichen stehen.
Psselect gestattet daneben auch, mehrere Seiten in Form einer mit Kommas getrennten Liste oder als Bereich anzugeben, um eine ganze Folge von Seiten zu separieren:
$ psselect -q -p1,5,23-42 voll.ps teil.ps
Dieser Aufruf entnimmt der Datei voll.ps die Seiten 1 und 5 sowie 23 bis 42 und speichert diese in der Datei teil.ps. Erweitern Sie den Aufruf um die Option -r, speichert das Tool die Seiten in umgekehrter Reihenfolge ab.
Gerade, ungerade
Hilfreich können auch die beiden Optionen -o und -e sein. Mit -o (“odd”) wählen Sie alle Seiten mit ungerader Nummer aus, mit -e (“even”) aller mit gerader. Typischer Einsatz: die Ausgabe auf einem nicht-duplexfähigen Drucker. Zunächst drucken Sie alle Vorderseiten (ungerade Seitenzahlen), dann wenden Sie den Papierstapel und lassen den Drucker die Rückseiten gefüllt. Weist das Dokument eine ungerade Seitenanzahl auf und Sie drucken zuerst alle geraden Seiten, müssen Sie beim zweiten Druckvorgang ein zusätzliches Blatt für die letzte Seite einlegen. Dessen Rückseite bleibt leer.
PDFs zerlegen
Beim Separieren von PDF-Dokumenten hilft das Kommando pdftk[2]. Es verfügt über eine große Anzahl an Optionen und gilt daher als Schweizer Taschenmesser zur Bearbeitung von PDFs. Das folgende Aufruf extrahiert die 42. Seite aus dem Dokument voll.ps:
$ pdftk voll.pdf cat 42 output s42.pdf
Pdftk liest zunächst voll.pdf, interpretiert dann die Angabe cat 42 als Extraktionswunsch für die Seite 42 und erzeugt schließlich direkt die Datei s42.pdf mit dem gewünschten Inhalt. Ein Umlenken durch die Shell mittels > ist nicht nötig. Um alle Seiten in Einzeldokumenten zu erhalten, nutzen Sie die Option burst:
$ pdftk original.pdf burst
Die einzelnen Seiten legt Pdftk in Form von Dateien nach dem Namensschema pg_Seitennummer.pdf ab (abweichende Dateinamen lassen sich einstellen). Zusätzlich erzeugt das Tool eine Datei namens doc_data.txt, die Statusinformationen zum ursprünglichen Dokument beinhaltet (Abbildung 1).
Entfernen von Seiten
Auch Pdftk gestattet die Angabe einer Liste von Seiten. Das ist vor allem dann nützlich, wenn nur eine einzelne Seite aus dem Dokument entfernt werden soll. In dem Fall lässt man einfach in der Seitenliste die überflüssige Seite weg:
$ pdftk original.pdf cat 1-4 6-end output kopie.pdf
Hierbei legt Pdftk werden die Seiten 1 bis 4 sowie alle Seiten ab der sechsten bis zum Ende in der Ausgabedatei kopie.pdf ab, die Seite 5 bleibt außen vor. Die Originaldatei “original.pdf” lässt das Tool dabei unverändert.
Kleben und Heften
Sowohl Postscript- als auch PDF-Dokumente lassen sich bei Bedarf problemlos vereinigen. Sinnvoll ist das etwa bei Vortragsfolien, die Sie in Abhängigkeit von der Veranstaltung und vom Publikum vorbereiten möchten. Auch die Empfänger von Verträgen und Bewerbungen freuen sich, wenn sie statt einem ganzen Dutzend Dateien lediglich ein einziges Dokument erhalten. Zur Vereinigung von Postscript-Dateien nutzen Sie Psmerge:
$ psmerge -oausgabe.ps file1.ps file2.ps file3.ps
Dieser Aufruf verbindet Kopien der drei Ausgangsdateien und speichert das Ergebnis im File ausgabe.ps. Dabei nimmt Psmerge eine Liste aller Dateien in das Ergebnis auf. Es empfiehlt sich daher, die Ausgabedatei nicht irgendwo in der Parameterliste anzugeben, sondern gleich am Anfang. Beachten Sie, dass zwischen der Option -o und dem Dateinamen kein Leerzeichen stehen darf.
Seiten zusammenfügen
Die beiden Werkzeuge Pdftk und Pdfjoin helfen dabei, PDFs aneinanderzufügen. Die beiden folgenden Aufrufe erzeugen ein identisches Ergebnis:
$ pdfjoin file1.pdf file2.pdf –outfile ausgabe.pdf $ pdftk file1.pdf file2.pdf cat output ausgabe.pdf
Auch hier dürfen Sie eine Liste von Dateien angeben, die Sie jeweils durch Leerzeichen voneinander trennen. Der folgende Befehl fügt alle PDF-Dateien im aktuellen Verzeichnis zusammen:
$ pdftk *.pdf cat output alle.pdf
Beim Zusammenfügen von Dateien müssen Sie die Seiten von mehreren Dateien angeben, was zu ziemlich langen Kommandozeilen führen kann. Darum gestattet es Pdftk, in Parametern auch Abkürzungen für Dateinamen anzugeben, sogenannte “file handles”:
$ pdftk A=mappe.pdf B=daten.pdf cat A1 B15-end output angebot.pdf
Im ersten Schritt merkt sich Pdftk die Dateien mappe.pdf als A und daten.pdf als B. Danach erzeugt es die Datei angebot.pdf, die zunächst nur aus der ersten Seite des Handles A besteht (A1 für erste Seite aus A). Danach fügt es alle Seiten von B an – von Seite 15 bis zur letzten Seite (B15-end).
Grafische Alternativen
Wer sich eher in der Welt der grafischen Werkzeuge zu Hause fühlt, steht nicht ganz im Abseits, auch wenn die Menge der Möglichkeiten nicht ganz so groß ist. Mittlerweile kann die Version 3 von OpenOffice ebenfalls PDF-Dokumente anzeigen und bearbeiten, inklusive dem Einfügen, Löschen und Umsortieren einzelner Seiten. Dazu markieren Sie zunächst die entsprechende Seite in der Voransicht und setzen dann über das Kontextmenü, das Sie durch einen Rechtsklick erreichen, die gewünschte Aktion fort (Abbildung 2).
Ähnliches Fähigkeiten bieten auch Cabaret Stage [4] und Pdfedit ([5], Abbildung 3), die es als Pakete für Debian und Ubuntu gibt. Auf den ersten Blick erschienen beide etwas unübersichtlich, meistern ihre Aufgaben jedoch mit Bravour.Ein neuer Stern am Himmel der PDF-Werkzeuge ist das in Java geschriebene Pdfsam [6]. Das bereits recht vielversprechende Werkzeug bietet ein ähnliches Leistungsspektrum wie Pdftk.
Eine Möglichkeit, PDFs auch unterwegs zu bearbeiten, bietet die Online-Ausgabe von Pdfjoin [7]. Bis zu fünf PDF-Files lassen sich über das Webformular hochladen, das Ergebnis der Bearbeitung erhält man danach per E-Mail. Zwar verspricht der Anbieter, die Dateien sofort nach der Bearbeitung zu löschen, doch die Übertragung erfolgt unverschlüsselt über HTTP. Darum ist dennoch vom Gebrauch dieser Applikation Für vertrauliche Unterlagen eignet sich diese Variante also nicht.
Fazit
Die Verarbeitung von Postscript- und PDF-Dokumenten stellt Linux vor keinerlei Probleme. Es gibt sowohl grafische Tools für das Bearbeiten auf dem Desktop als auch Kommandos für das automatische Modifizieren über Skripte. Spannend wird die nächste Generation von Werkzeugen, die sogenannten “Online-Applikationen”.
Infos
[1] Psutils: http://packages.debian.org/lenny/psutils
[2] Pdftk: http://www.accesspdf.com/pdftk/
[3] Pdfjam: http://packages.debian.org/lenny/pdfjam
[4] Cabaret Stage: Hagen Höpfner, “Bühne frei!”, LinuxUser 02/2007, S. 68, https://www.linux-community.de/artikel/12182/
[5] Pdfedit: http://pdfedit.petricek.net/index_e.html
[6] Pdfsam: http://www.pdfsam.org
[7] Pdfjoin: http://www.pdfjoin.com








