Die Seitenbeschreibungssprache Postscript von Adobe wird von hochwertigen Laserdruckern und Filmbelichtern verwendet. Wessen Drucker Postscript verweigert oder wer einen leistungsfähigen Konverter braucht, der nimmt den Interpreter Ghostscript. Die aktuellen Versionen 6.5 und 7.0 zeigen ihre besten Seiten.
Postscript ist Standard bei hochwertigen Druckern und Belichtungsmaschinen. Im Grunde ist Postscript eine Programmiersprache – eine Applikation oder ein Druckertreiber erzeugt eine Datei, in der mit speziellen Befehlen Inhalt und Layout eines Dokuments beschrieben werden. Ein Interpreter im Drucker setzt diese Beschreibung in Pixel um, die dann auf Papier oder einem anderen Medium ausgegeben werden.
Freie Alternative
Die Entwicklung von Ghostscript begann 1986 als frei verfügbare Alternative zu Adobes Postscript-Produkten. Heute ist es als unabhängige Implementierung allgemein anerkannt. Der Name Ghostscript steht nicht nur für den Postscript-Interpreter, sondern für eine ganze Sammlung von Programmen und Bibliotheken, die für unterschiedliche Betriebssysteme verfügbar sind.
Ghostscript ist in C geschrieben und interpretiert auch das Portable Document Format (PDF). Es bietet sich hier als Alternative für den Adobe Acrobat Reader an – insbesondere für die Betriebssystem- oder Hardware-Plattformen, die von Adobe nicht unterstützt werden. Adobe bietet für Linux zurzeit nur eine Version für die 32-bittige Intel-Architektur an.
Ausgabeformate von Ghostscript sind die verschiedenen Rasterformate (zum Beispiel PCX, TIFF, PBM), aber auch PCL, Postscript und PDF. Daraus ergeben sich vielseitige Einsatzmöglichkeiten: Ausgabe auf dem Bildschirm, auf einen Drucker oder als Datei.
Die Bildschirmausgabe ist hilfreich, um Dateien zu überprüfen oder am Bildschirm zu lesen, ohne gleich Papier zu verbrauchen. Vor der Weitergabe von Postscript-Dateien an ein Belichtungsstudio können letzte Fehler noch erkannt und korrigiert werden. Die Ausgabe von Postscript-Dateien auf einen grafikfähigen Drucker ist allerdings das weitaus häufigere Einsatzgebiet von Ghostscript: Eine Applikation erzeugt als Ausgabe eine Postscript-Datei, die anschließend von Ghostscript für die Ausgabe auf den Drucker aufbereitet wird. Das passiert für den Benutzer vollkommen transparent durch das Drucksystem (»lpr«, »lprng«). Ghostscript enthält hierfür eine Vielzahl von Treibern für die Ansteuerung von Druckern.
Mit der Möglichkeit, Postscript auch nach PDF zu konvertieren, ist Ghostscript eine echte Alternative zu den kommerziellen Acrobat-Produkten von Adobe, namentlich Distiller, um einfache PDFs zu erzeugen.
Mit eigener Lizenz
Ghostscript ist zwar kostenlos erhältlich, unterliegt aber in der neuesten Version 7.03 einer eigenen Lizenzbedingung, der Aladdin Ghostscript Free Public License (AGFPL)[1]. Sie erlaubt es nicht, dass das Programmpaket Bestandteil der Linux-Distributionen ist. Die Vorversionen (die letzte ist 6.52) unterliegen dagegen der GNU Public License. Die AGFPL erlaubt es jedoch, das Paket kostenlos herunterzuladen und zu verwenden.
Linux und Ghostscript
Vor dem Einsatz auf Linux sind allerdings einige Hürden zu überwinden, die hier beschrieben werden sollen. Zuerst muss der Anwender von der Sourceforge-Projektseite[2] die Sourcen herunterladen. Anschließend sind noch drei Bibliotheken notwendig:
tar xzf ghostscript-7.00.tar.bz2 cd gs7.00 tar xzf ../libpng-1.0.2.tar.gz mv libpng-1.0.2 libpng tar xzf ../jpegsrc.v6b.tar.gz mv jpeg-6b jpeg tar xzf ../zlib-1.1.3.tar.gz mv zlib-1.1.3 zlib
Jetzt muss ein Makefile verlinkt werden, für Linux das Makefile für den »gcc«:
ln -s src/unix-gcc.mak Makefile
Damit das Kompilieren auch klappt, ist die Datei »src/time_.h« noch zu modifizieren. Zeile 41 muss anschließend so aussehen:
#if defined(Plan9) || defined(M_UNIX) || defined(_IBMR2) || defined(_SEQUENT_) || defined(linux)
Jetzt kann man mit »make« das Programmpaket kompilieren und mit einem anschließenden »make install« installieren. Danach sind nur noch die Schriften zu installieren, normalerweise in »/usr/ local/share/ghostscript/fonts/«.
Makefile-Konfiguration
Weitere Einstellungen wie Verzeichnisse und Treiber werden im Makefile konfiguriert. Für einige wichtige Drucker ist die Unterstützung nicht im Standardpaket enthalten, sondern nur über andere Quellen zu beziehen und nachträglich einzurichten. Als Beispiel sei hier die PCL3-Unterstützung für die HP Deskjets genannt[5]. Alternativ sind die GNU-Versionen einsetzbar, die in den Linux-Distributionen enthalten sind.
Bei der Performance zeigen die Versionen 6.x und 7.x keine wesentlichen Unterschiede. Neu an Ghostscript 7 ist vor allem die Unterstützung einiger Features der PDF-Version 1.4[3] (siehe Kasten “PDF-Versionen”), zum Beispiel die Transparenz. Außerdem wurde das API zum Aufruf von Ghostscript-Funktionen überarbeitet. Für den täglichen Einsatz als Postscript-Interpreter ist das aber eher unwichtig.
Kommandozeile und GUI
Für die Bildschirmausgabe gibt es verschiedene Applikationen, die ein komfortables Benutzerinterface bieten. Zu nennen sind hier »ghostview«, »GSview«[6] und »gv«[7]. Trotz der ähnlichen Namen handelt es sich um verschiedene Applikationen. Am ausgereiftesten ist wohl »gv« (Abbildung 2).
Filtern im Hintergrund
Für die Verwendung in Skripten, also auch für Drucksysteme wie etwa »lpd«, sind die umfangreichen Steuerungsmöglichkeiten über die Kommandooptionen von entscheidender Bedeutung. Hier kann man zum Beispiel das Ausgabeformat, die Auflösung und die Ausgabedatei angeben. Die Ausgabe kann aber auch auf die Standardausgabe oder in eine Pipe erfolgen. Zusammen mit den PSUtils[9] kann Ghostscript für sehr flexible Druckerfilter verwendet werden. Einige Beispiele:
- Der Anwender druckt gewissermaßen ein Dokument auf eine Queue. Das Dokument wird automatisch nach PDF konvertiert und auf einem Webserver publiziert. Der Anwender muss sich nicht um die Vorgänge im Hintergrund kümmern.
- Ein eingegangenes Fax wird auf einem PCL-Drucker ausgedruckt und zusätzlich als PDF archiviert.
- Ein Dokument wird mit »psselect« in die erste und die folgenden Seiten aufgeteilt und dann an zwei verschiedene Queues weitergegeben (Ausdruck Briefkopf und Folgeseiten).
- Ghostscript ist einer der zentralen Bestandteile des Druckerfilters Apsfilter[10], der zu druckende Dateiformate mit nahezu 100 Prozent selbsttätig erkennt und in die Sprache des jeweiligen Druckers konvertiert.
Diese Liste ließe sich noch (fast) beliebig fortführen.
Ghostscript arbeitet vielfach lautlos im Hintergrund versteckt, so dass die meisten Anwender niemals von seiner Existenz erfahren. Für den Administrator ist Ghostscript aufgrund seiner Funktionsvielfalt und Flexibiltät ein wichtiges Werkzeug, das unbedingt einen zweiten Blick verdient.
Den Euro versteht Ghostscript 7.03 übrigens auch schon korrekt, sofern beispielsweise in dem Postscript-Dokument »ISO-8859-15Encoding« steht, das Euro-Zeichen aber als »E« mit Zeichencode 244 (siehe Abbildung 3).
RTFM
Die Dokumentation ist ausführlich – leider nur in Englisch. Neben der Manpage »gs.1« enthät auch die Datei »Use.htm« weitere Information, darüber hinaus erweist sich die Newsgroup [comp.lang .postscript] bisweilen ebenfalls als recht ergiebig. ( hmi)
|
PDF-Versionen |
|
Um die Erzeugung bestimmter PDF-Versionen gezielt steuern zu können, bietet Ghostscript 7.0 neben »ps2pdf« auch »ps2pdf12« (für PDF 1.2) sowie »ps2pdf13« (für PDF 1.3). Unter der Haube rufen diese Skripte »ps2pdfwr« auf, das lediglich die Option »-dCompatibilityLevel=« hinzufügt und seinerseits wiederum »gs« aufruft. Jedoch ist »gs« an dieser Stelle nicht sehr smart – es lässt sich auch Fantasielevel wie 2.9 unterschieben und setzt soweit erkennbar nur die Kennung am Anfang der Datei (»PDF-2.9«) auf den entsprechenden Wert. Ab Version 2.0 moniert zwar der Acrobat Reader, dass er irgendeine Information in der Datei nicht versteht, zeigt sie aber (im Beispiel »tiger.ps«) trotzdem korrekt an. Ein »ps2pdf14« existiert im Sourcebaum ebenfalls, es wird auch in der Dokumentation[11] erwähnt, aber rätselhafterweise nicht mit installiert. »ps2pdf« bietet nur eingeschränkte Unterstützung für PDF 1.4. Es kennt den Blend Mode sowie Constant Alpha und behandelt Bilder mit weichen Masken (Soft Masks) korrekt. Unterstützung fehlt für Transparenzgruppen und Grafiken mit weichen Masken. Postscript kennt keine Möglichkeit, diese Angaben zu spezifizieren – folglich lassen sie sich nur nutzen, wenn die Ausgangsdatei bereits als PDF 1.4 vorliegt[11]. |
|
Infos |
|
[1] Website Ghostscript: [http://www.ghostscript.com/] [2] Website GNU Ghostscript: [http://sourceforge.net/projects/ghostscript/] [3] Online-Handbuch Portable Document Format: [http://partner.adobe.com/asn/developer/technotes/acrobatpdf.html] [4] Online-Handbuch Postscript: [http://partners.adobe.com/asn/developerr/technotes/postscript.hmtl] [5] PCL3-Treiber für Ghostscript: [http://home.t-online.de/home/Martin.Lottermoser/pcl3dist“>] [6] »GSview«: [http://www.cs.wisc.edu/~ghost/gsview/] [7] »gv«: [http://wwwthep.physik.uni-mainz.de/~plass/gv/] [8] Thomas Merz “Ghostscript Manual” (Auszug aus “Die Postscript und Acrobat-Bibel”): [http://www.ifconnection.de/~tm/] [9] PSUtils: [http://www.dcs.ed.ac.uk/home/ajcd/psutils/] [10] Apsfilter: [http://www.apsfilter.org/] [11] »/usr/share/ghostscript/7.xx/doc/ Ps2pdf.htm« |
|
Der Autor |
|
Pascal Frantz arbeitet als Systemberater bei der SuSE Linux Solutions AG. |





