Randständig
Werkzeuge für PDF und Postscript (Teil 6)
Serie Postscript/PDF-Tools
| Teil 1 | Anzeigen und Konvertieren | LU 08/2009, S. 78 | http://www.linux-community.de/artikel/19014 |
| Teil 2 | Zerlegen und Zusammensetzen | LU 09/2009, S. 82 | http://www.linux-community.de/artikel/17410 |
| Teil 3 | Mehrfachdruck und Poster | LU 10/2009, S. 88 | http://www.linux-community.de/artikel/19376 |
| Teil 4 | Flyer, Booklets und Bücher | LU 11/2009, S. 88 | http://www.linux-community.de/artikel/19481 |
| Teil 5 | Analysieren und Extrahieren | LU 12/2009, S. 88 | http://www.linux-community.de/artikel/19635 |
| Teil 6 | Drehen und Skalieren | LU 01/2010, S. 90 | http://www.linux-community.de/artikel/20046 |
Die Betreiber von Online-Shops kooperieren häufig mit Versanddienstleistern. Die Paketinformationen stehen online zur Verfügung – daraus lässt sich neben der Tracking-Information auch automatisch der Paketaufkleber (Label) mit Absender- und Lieferanschrift samt Barcode zur Paketidentifikation generieren.
DHL beispielsweise stellt dafür Paketaufkleber im Format DIN A5 bereit. Die über ein Webformular erzeugte Druckvorlage für den Paketaufkleber hat jedoch die Größe DIN A4 Querformat und ist nur halbseitig gefüllt (Abbildung 1). Um das A5-Etikett richtig zu bedrucken, muss man die Druckvorlage entsprechend drehen. Der Drucker zieht den Aufkleber ein und bedruckt den gefüllten Anteil der Vorlage, den Leerbereich ignoriert er.
Für das Drehen von PDF-Files erweist sich pdf90 aus dem Paket pdfjam[1] als sehr empfehlenswert. Das Shellskript nutzt pdflatex zur Rotation der einzelnen Seiten eines oder mehrerer PDF-Dateien. Die Drehungen erfolgen in 90-Grad-Schritten entgegen des Uhrzeigersinns. Mit dem Parameter --outfile legen Sie den Namen der Ausgabedatei fest – geben Sie keinen an, erzeugt Pdf90 selbst einen Namen.
Für Drehungen um 180 Grad bietet das Tool allerdings keine separate Option an – der Einzeiler aus Listing 1 löst das Problem. Er dreht das File eingabe.pdf um 90 Grad und legt das Zwischenergebnis in der Datei zwischen.pdf ab. Sofern dieser Schritt erfolgreich verlief (das prüft der Bedingungsoperator &&), sorgt das nachfolgende Kommando für eine weitere Drehung um 90 Grad. Das Ergebnis landet im File ausgabe.pdf. Anschließend wird das Zwischenergebnis wieder gelöscht – aber nur, falls die beiden vorhergehenden Schritte fehlerfrei abliefen.
$ pdf90 --outfile zwischen.pdf eingabe.pdf && pdf90 --outfile ausgabe.pdf zwischen.pdf && rm zwischen.pdf
Den Rand von PDF-Dokumenten anpassen
Bei vielen PDF-Dokumenten fällt der Seitenrand unpassend aus – entweder zu groß oder zu klein. Das trifft einerseits auf Dokumente zu, die aus den USA, Kanada oder Mexiko stammen: Diese sind in der Regel im dort üblichen Seitenformat Letter angelegt, ein Ausdruck des Dokuments im Format DIN A4 erzeugt daher riesige, weiße Ränder. Das genaue Gegenteil gilt für Dokumente dar, die nahezu formatfüllend ohne Rand erstellt wurden. Solche Dateien lassen sich oft nicht ohne Textverlust durch den Einzug ausdrucken, geschweige denn lochen und einheften, ohne dass dabei Text verloren geht.
Um den Rand auf ein verträgliches Maß zu reduzieren und den Dokumenteninhalt auch entsprechend zu skalieren, hilft pdfcrop[2]. Das Werkzeug findet sich unter Debian in den (La)TeX-Paketen, also je nach Debian-Version in tetex oder texlive. Zur Verarbeitung kombiniert Pdfcrop die bereits vorgestellten Werkzeuge ps2pdf, pdf2ps, poster und pdftk (siehe Teil 2 bis 4 dieser Serie).
Pdfcrop zerlegt zunächst das Dokument mittels pdftk in Einzelseiten zerlegt, die es danach mit pdf2ps in Postscript-Files umwandelt. Die Skalierung auf A4 übernimmt poster, anschließend wandelt ps2pdf die Postscript-Files wieder in PDF-Dateien um. Zu guter Letzt klebt pdftk diese zu einem PDF-Dokument zusammen (Abbildung 2). Ein typischer Aufruf hat folgende Form:
$ pdfcrop --margins '5 10 5 20' input.pdf output.pdf
Die vier Zahlenwerte der Option --margins bestimmen den Seitenrand (im Uhrzeigersinn, beginnend mit dem linken Rand). Wird nur ein Wert angegeben, gilt dieser für alle Ränder.
Elmar Stellnberger hat ein hilfreiches Shellskript auf seiner Webseite veröffentlicht, das mithilfe von Pdfcrop Dokumente mit einem Bundsteg versieht [3]. Es beachtet ungerade und gerade Seiten, setzt die jeweiligen passenden Ränder und führt die Dokumente dann wieder zusammen, sodass man auch von Duplex-Druckern profitieren kann. Bisher gibt für bundsteg, so der passende Name des kleinen Werkzeugs, leider noch kein DEB- oder RPM-Paket.
Infos
[1] Pdfjam: http://www2.warwick.ac.uk/fac/sci/statistics/staff/academic/firth/software/pdfjam/
[2] Pdfcrop: http://pdfcrop.sourceforge.net
[3] Drucken mit Bundsteg: http://www.elstel.com/bundsteg/



