Aus LinuxUser 09/2003

Zu Befehl: gs & psutils

Ghostwriter

PostScript ist eine plattformunabhängige Programmiersprache, in der Texte und Grafiken an Drucker übermittelt werden. Neben den bekannten Viewern für diese Formate gibt es auch auf der Kommandozeile viele nützliche und schnelle Tools, die .ps-Dateien bearbeiten und anzeigen. Wir zeigen, wie Sie mit Ghostscript und den PSUtils „geistreich“ arbeiten.

Zu Befehl

Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, in denen es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.

Ghostscript [1] kann mit PostScript- und PDF-Dateien umgehen. Zur Konvertierung in andere Formate bringt das Programm eine Vielzahl von Treibern („Devices“) mit. So stellt es nicht nur Druckertreiber zur Verfügung, es kann auch PostScript in PDF wandeln oder Dateien für die Anzeige am Bildschirm vorbereiten.

Die PSUtils [2] sind eine Sammlung von Programmen, mit denen Sie PostScript-Dateien bearbeiten können. Dazu gehören die Tools psnup (bringt mehrere Seiten auf eine), psresize (verändert die Papiergröße), psselect (wählt einzelne Seiten aus der PostScript-Datei aus), pstops (Manipulieren von Dokumenten, z. B. Vergrößern oder Verkleinern), psbook (ordnet Seiten wie in einem Buch an) und epsffit (bringt eine EPS-Datei auf eine bestimmte Größe).

Bevor es in die Tiefen der Kommandozeilen-PostScript-Verarbeitung geht, lohnt sich ein Blick auf die Grundlagen: Wie sind PostScript-Dateien aufgebaut?

Wer, wie, was?

Theoretisch ist es möglich, eine PostScript-Datei von Hand in einem Editor zu erstellen (Kasten 1), da es sich um reine ASCII-Dateien handelt. Im Normalfall übernimmt diese Aufgabe aber die Druck-Routine eines Programmes. Anschließend muss das Gerät, das die Informationen aus PostScript-Dateien verarbeiten will, mit einem entsprechenden Interpreter ausgestattet sein, um die Datei am Bildschirm oder Drucker auszugeben – das kann beispielsweise ein PostScript-Drucker sein, der in seiner Firmware einen PostScript-Interpreter besitzt.

Kasten 1: PostScript von Hand

Auf den Seiten von Holger Gehringer [3] finden Sie ein ausführliches Tutorial, das von einfachen Beispielen (z. B. Linien und Quadrate) über komplizierte Schriftvariationen viele Tipps und Tricks bietet. Ein einfaches Dokument mit dem Text „Hallo Welt“ könnte dementsprechend so aussehen:

%!PS-Adobe-1.0          % Versionsnummer (PostScript-Versionen 1-3)
/Times-Roman findfont   % Font suchen
48 scalefont            % Schrift auf 48 Punkte skalieren
setfont                 % die gewaehlte Schrift zum 'aktuellen Font' machen
100 500 moveto          % Anfangspunkt fuer Textausgabe setzen
(Hallo Welt!) show      % 'Hallo Welt!' ausgeben
showpage                % aktuelle Seite ausgeben

PostScript-Dateien folgen im Idealfall einigen Regeln und Konventionen, die die Weiterverarbeitung durch andere Programme erleichtern. Eine Seitenbeschreibung ist beispielsweise immer in Prolog (Definitionen) und Skript (beschreibt Seite anhand der Definitionen) aufgeteilt. Handelt es sich um ein mehrseitiges Dokument, sollten die einzelnen Seiten unabhängig voneinander beschrieben werden.

An unserem einfachen Beispiel lassen sich einige wichtige Eigenschaften erkennen:

  • Kommentare beginnen mit einem Prozentzeichen und enden mit einer neuen Zeile.
  • Strukturinformationen sind besondere Kommentare und beginnen mit %! oder %%. (Wichtig: die Zeichen müssen am Anfang einer Zeile stehen, da sie sonst als „normale“ Kommentare interpretiert werden.)
  • Ein PostScript-Dokument beginnt immer mit %!, am besten mit Versionsnummer

Neben .ps-Dateien finden sich häufig auch .eps-Files („Encapsulated PostScript“, auf deutsch etwa „gekapseltes PostScript“). Diese Dateien dienen zum Transport von Informationen (meistens Grafiken) zwischen Programmen und dürfen in Dokumente eingebunden und skaliert werden. Der ursprüngliche PostScript-Code wird dabei in eine „Bounding Box“ eingeschlossen, welche die horizontalen und vertikalen Koordinaten und die linken untere und rechte obere Ecke der Grafik angibt.

Der, die, das…

Viele Wege führen zu PostScript- und PDF-Dateien. Wer mit LaTeX [1] arbeitet, wandelt einfach .dvi-Dateien auf der Kommandozeile in PostScript um:

huhn@huhnix:~> dvips datei.dvi -o
This is dvips(k) 5.86 Copyright 1999 Radical Eye Software (www.radicaleye.com)
' TeX output 2002.07.23:1627' -> datei.ps

Simple Textdateien verarbeiten Sie mit a2ps[4] weiter. Ursprünglich war das Programm als Konvertierungsprogramm (Text nach PostScript) konzipiert. In neueren Versionen kann dieser PostScript-Filter aber auch mit komprimierten Dateien, LaTeX-Dokumenten und sogar Bildformaten umgehen (Abbildung 1). Eine komplette Übersicht, was das Programm alles kann, erhalten Sie mit:

huhn@huhnix:~> a2ps --list=delegations
Applications configured for delegation
[…]
Delegation `ImageMagick', from png to ps
        #{del.imagick} 'png:$f' ps:- | #{del.psselnup}
[…]

Der Eintrag Delegation `ImageMagick', from gif to ps bedeutet beispielsweise, dass a2ps mit Hilfe des externen Programms ImageMagick Bilder im PNG-Format („Portable Network Graphics“) in PostScript wandelt.

Abbildung 1: Das Titelbild als PostScript-Datei
Abbildung 1: Das Titelbild als PostScript-Datei

Wieso, weshalb, warum?

Mit dem Acrobat Reader, KGhostView, GNOME-GhostView und gv als grafischen Schnittstellen zu Ghostscript kommen zahlreiche GUIs zum PostScript-Betrachten, -Umwandeln oder -Drucken. Wer aber Vorgänge (etwa in Shell-Skripts) automatisieren will, kann auch direkt auf das eigentliche Ghostscript-Programm gs zugreifen.

gs kann mit oder ohne Angabe einer PostScript- oder PDF-Datei auf der Kommandozeile gestartet werden. Neben einem Anzeigefenster sehen Sie als Output im Terminal-Fenster etwas wie:

LinuxUser 09/2003 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: