Serie Postscript/PDF-Tools
| Teil 1 | Anzeigen und Konvertieren | http://www.linux-community.de/artikel/19014 |
| Teil 2 | Zerlegen und Zusammensetzen | http://www.linux-community.de/artikel/17410 |
| Teil 3 | Mehrfachdruck und Poster | http://www.linux-community.de/artikel/19376 |
Früher sparte man beim Drucken eher aus Ungeduld oder aus Kostengründen Papier und Toner – die Drucker waren langsam und laut, das Verbrauchsmaterial eine teuere Angelegenheit. Mit der Verfügbarkeit immer flinkerer und preiswerterer Drucker, Tinten und Toner gerieten solche Aspekte zunehmend aus dem Blickfeld, gewinnen aber heute unter dem Gesichtspunkt der "Green IT" wieder zunehmend an Popularität.
Auch wenn sich Optionen etwa zur Ausgabe mehrerer Druckseiten auf ein Blatt vielfach bereits in Druckdialogen finden, lohnt sich auch in dieser Hinsicht ein genauerer Blick auf die Werkzeuge, die sich unter Linux zum Umgang mit Postscript- und PDF-Dokumenten finden: Sie bieten eine wesentlich genauere Kontrolle über die Ergebnisse. Bei Postscript helfen die Pakete Psutils [1] und Mpage [2] weiter, bei PDF hingegen Pdfjam [3]. Letzteres setzt auf Pdftex [4] und dem dazugehörigen Zusatzpaket Pdfpages [5] auf.
Sparsamer drucken
Für die Ausgabe mehrerer Seiten auf ein Druckblatt kommen die Werkzeuge psnup aus den Psutils, mpage sowie pdfnup aus dem Pdfjam-Paket infrage. Obwohl mpage seinen Schwerpunkt eigentlich bei der Formatierung und Umwandlung von ASCII-Text nach Postscript hat, vereinfacht es etliche vertrackte Situationen erheblich [6].
Als erstes Beispiel erstellen wir ein Dokument mit zwei Seiten nebeneinander auf einem Blatt. Dazu werden zwei Seiten im DIN-A4-Hochformat auf DIN-A5-Hochformat verkleinert und anschließend nebeneinander auf eine DIN-A4-Seite im Querformat montiert (Abbildung 1). Jedes der drei Programme psnup, mpage und pdfnup kann das bewerkstelligen, die Aufrufe lauten:
$ psnup -2 seite.ps dseite.ps $ mpage -2 seite.ps > dseite.ps $ pdfnup seite.pdf --nup 2x1 --outfile dseite.pdf
Bei Psnup bezeichnet der Parameter -2 die Anzahl der Seiten, die pro Blatt erscheinen sollen. Die Originale verkleinert das Programm automatisch so, dass die Seiten auf das Blatt passen. Die folgenden Parameter geben die Ein- und Ausgabedatei an.
Mpage verwendet eine ganz ähnliche Syntax. Hier gilt es lediglich zu beachten, dass das Tool das Ergebnis üblicherweise auf die Standardausgabe schickt. Deshalb leiten Sie die Ausgabe mittels des >-Operators in eine Zieldatei um.
Pdfnup arbeitet analog zu Psnup, nur die Anzahl und Reihenfolge der Parameter unterscheiden sich etwas. Zuerst geben Sie die Ausgangsdatei an, danach folgen über den Parameter --nup die Anordnung in Zeilen und Spalten (hier: 2x1, also zwei Seiten nebeneinander pro Blatt) und via --outfile der Name des Ausgabefiles.
Diese Vorgehensweise wenden Sie analog auch zum Anordnen von vier, sechs oder acht Seiten auf einem Blatt an. Psnup ordnet aufeinanderfolgende Seiten nach Möglichkeit nebeneinander an. Bei Seitenanzahlen pro Blatt, die sich ohne Rest durch vier teilen lassen, erfolgt die Ausgabe im Hochformat, ansonsten automatisch im Querformat. Drei Seiten ordnet das Tool also im Querformat an (alle drei Seiten nebeneinander), vier Seiten dagegen im Hochformat (zwei Seiten oben, zwei unten).
Bei der Erstellung des Ausgabefiles gibt sich Psnup recht gesprächig: Es lässt wissen, wie viele Blätter das Ausgabefile umfasst (in Abbildung 3 sind es vier), und wie groß das Ausgabefile geraten ist (im Beispiel rund 7 MByte).
Psnup kennt eine ganze Anzahl von Parametern, die zusätzliche Ausgabemöglichkeiten eröffnen. Die Option -d2 ("draw line") beispielsweise zeichnet eine 2pt starke Linie um jede verkleinerte Originalseite. Mit -b10 ("border") erhält jede Seite einen zusätzlichen, unbedruckten Rand von 10pt. Einen Rand von 50pt Breite um das gesamte Blatt zieht der Parameter -m50 ("margin"). Hilfreich ist das etwa bei Handreichungen für Vortragsfolien, bei denen sich die Zuhörer erfahrungsgemäß über etwas Platz am Rand für ihre Notizen freuen.
Mpage zeichnet einen Rahmen um jede verkleinerte Seite. Bei Angabe des Parameters -dp betrachtet das Tool die Eingabedaten nicht als ASCII-Daten, sondern als Postscript. Der Schalter -v macht Mpage etwas gesprächiger (Abbildung 3).
Handouts mit Pdfnup
Pdfnup kann mit den beiden Konkurrenten in jedem Fall mithalten. Mittels des Aufrufs aus Listing 1 (Abbildung 4) erzeugen Sie aus dem Eingabefile folien.pdf die Ausgabedatei doppelfolien.pdf, in der Pdfnup vier Seiten pro Blatt anordnet (--nup 2x2). Das Ergebnis sehen Sie in Abbildung 5.
$ pdfnup folien.pdf --nup 2x2 --outfile doppelfolien.pdf --delta "0.5cm 0.5cm" --trim "-0.5cm -0.5cm -0.5cm -0.5cm"
Benennen Sie beim Aufruf von Pdfnup keine Ausgabedatei, dann kombiniert das Tool den Namen des Eingabefiles mit der ausgewählten Anordnung – im Beispiel aus Listing 1 hieße die Ausgabedatei dann als folien-2x2.pdf.
Um noch ein wenig Abstand zwischen die verkleinerten Seiten zu bekommen, greift der Aufruf ein wenig tiefer in die Pdfnup-Trickkiste. Der Parameter --delta "0.5cm 0.5cm") sorgt für Abstände von jeweils einem halben Zentimeter zwischen den verkleinerten Seiten. Den benötigten Platz dafür beschafft das zusätzliche Verkleinern der Originalseiten um jeweils einen halben Zentimeter (--trim "-0.5cm -0.5cm -0.5cm -0.5cm"). Das Ergebnis fällt nicht nur optisch ansprechend aus, sondern der Ausdruck lässt sich auch lochen und abheften, ohne dass die Folieninhalte beeinträchtigt würden.



