Tools für PDF und Postscript (3)

Aus LinuxUser 10/2009

Tools für PDF und Postscript (3)

© Shlomit Wolf, sxc.hu

Blattweise

Mit Linux-Bordmitteln bringen Sie nicht nur problemlos mehrseitige Postscript- oder PDF-Dokumente auf nur einem Blatt unter, sondern setzen auch großformatige Poster aus mehreren Druckseiten zusammen.

Serie Postscript/PDF-Tools

Teil 1 Anzeigen und Konvertieren https://www.linux-community.de/artikel/19014
Teil 2 Zerlegen und Zusammensetzen https://www.linux-community.de/artikel/17410
Teil 3 Mehrfachdruck und Poster https://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
Abbildung 1: Doppelseitige Ausgabe, in Kghostview angezeigt.

Abbildung 1: Doppelseitige Ausgabe, in Kghostview angezeigt.

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).

Abbildung 2: Terminalausgabe von Psnup mit der Anzahl der Blätter des Ausgabefiles.

Abbildung 2: Terminalausgabe von Psnup mit der Anzahl der Blätter des Ausgabefiles.

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).

Abbildung 3: Mpage erzählt, wieviele Blätter das Ausgabefile beinhaltet.

Abbildung 3: Mpage erzählt, wieviele Blätter das Ausgabefile beinhaltet.

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.

Listing 1
$ pdfnup folien.pdf --nup 2x2 --outfile doppelfolien.pdf --delta "0.5cm 0.5cm" --trim "-0.5cm -0.5cm -0.5cm -0.5cm"

Abbildung 4: Der Aufruf von Pdfnup mit den in Listing 1 dargestellten Parametern.

Abbildung 4: Der Aufruf von Pdfnup mit den in Listing 1 dargestellten Parametern.

Abbildung 5: Die vierseitige Darstellung eines Foliensatzes nach dem Umwandeln mit dem Aufruf aus Listing 1.

Abbildung 5: Die vierseitige Darstellung eines Foliensatzes nach dem Umwandeln mit dem Aufruf aus Listing 1.

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.

Blattsalat

Für den umgekehrten Weg – also das Vergrößern einzelner Seiten und geschicktes Zusammenfügen zu einem Poster aus einzelnen DIN-A4-Blättern – verwenden Sie das Werkzeug poster. Es verarbeitet sowohl schwarzweiße als auch farbige Postscript-Files. PDF-Dokumente müssen Sie im Vorfeld mit pdftops[7] entsprechend umwandeln. Wie das funktioniert, lesen Sie bei Bedarf in der ersten Folge dieser Beitragsreihe nach [8].

Als Ausgangspunkt benutzen wir ein Dokument im üblichen Format DIN A4. Um daraus ein DIN-A0-Poster zu produzieren, gilt es das Dokument aufzuteilen und die einzelnen Stücke dann auf einem kleinformatigen Drucker auszugeben. Anschließend kann man die einzelnen Blätter zu einem A0-Poster zusammenkleben. Beim Verwenden eines DIN-A3-Druckers benötigt man 8 Blätter, bei DIN A4 hingegen 16. Folgende Aufrufe führen zum Ziel:

$ poster -v -iA4 -mA3 -pA0 original.ps >poster-a3.ps
$ poster -v -iA4 -mA4 -pA0 original.ps >poster-a4.ps

Der Schalter -v (“verbose”) macht poster mitteilsam, ansonsten schweigt es beharrlich. Der Parameter -i (“input file”) nennt die Blattgröße der Eingabedatei, -m (“media size”) die Blattgröße, auf der gedruckt werden soll. Mit der Option -p legen Sie die Postergröße fest, hier also DIN A0. Danach folgt der Name der Eingabedatei, das Resultat gibt poster auf stdout aus. Von hier leiten Sie es mittels des >-Operators in die Ausgabedatei um.

Neben Postscript-Dateien kann poster auch EPS-Bilder direkt verarbeiten. In diesem Fall entfällt die Blattgröße des Eingabefiles, da das EPS-Format die Größe des Bildes schon enthält – poster kann sie also selbst ermitteln. Abbildung 6 zeigt den Kommandozeilenaufruf samt der Mitteilungen während der Verarbeitung, Abbildung 7 die dazugehörige Darstellung der gerenderten Einzelseiten in Ghostview.

Abbildung 6:     <code srcset=

poster bei der Erstellung der Einzelseiten für das A0-Poster.” width=”300″ height=”85″ /> Abbildung 6: poster bei der Erstellung der Einzelseiten für das A0-Poster.

Abbildung 7: So sieht eine Einzelseite des Posters in Ghostview aus.

Abbildung 7: So sieht eine Einzelseite des Posters in Ghostview aus.

Als besonders hilfreich beim Zusammenfügen der Einzelblätter zu einem Gesamtkunstwerk erweisen sich die von poster eingefügten Markierungen für die Seitenstöße, die in Abbildung 7 gut zu erkennen sind. Sie vereinfachen das passgenaue Verkleben erheblich.

Gerade bei Postern oder Transparenten, bei denen Sie die Einzelteile in Formaten über DIN A3 erzeugen – etwa für Veranstaltungsbanner oder ähnliches – fallen in der Regel recht erhebliche Datenmengen an. Aber keine Sorge, richtige Druckereien sind so etwas gewohnt und haben keine Probleme mit der Weiterverarbeitung.

Infos

[1] Psutils: http://packages.debian.org/lenny/psutils

[2] Mpage ftp://sunsite.unc.edu/pub/Linux/system/printing/mpage24.tgz

[3] Pdfjam: http://go.warwick.ac.uk/pdfjam

[4] Pdftex: http://www.ctan.org/tex-archive/systems/pdftex/

[5] Pdfpages: http://www.ctan.org/tex-archive/macros/latex/contrib/pdfpages/

[6] Mpage-Artikel: Martin Schulze, “Texten mit Mpage”, erschienen in Linux-Magazin 12/1997, http://www.infodrom.org/~joey/Writing/Linux-Magazin/mpage.html

[7] Pdftops: http://www.linuxcommand.org/man_pages/pdftops1.html

[8] PS/PDF-Tools (Teil 1): Frank Hofmann, “Bild und Druck”, LinuxUser 08/2009, S. 78, https://www.linux-community.de/artikel/19014/

LinuxUser 10/2009 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben