Ghostscript akzeptiert PostScript- und PDF-Daten als Eingabe und beinhaltet zur Konvertierung in andere Formate eine Vielzahl von Ghostscript-Treibern, die bei Ghostscript Devices heißen.
Ghostscript arbeitet bei der Konvertierung in zwei Schritten:
Die PostScript-Daten werden gerastert, das heisst die in der PostScript-Sprache beschriebene Grafik wird in ein feines Raster einzelner Bildpunkte zerlegt. Dieser Schritt ist unabhängig vom jeweiligen Ghostscript-Treiber. Je feiner das Raster (also je höher die Auflösung), desto höher ist einerseits die Ausgabequalität, aber bei doppelter Auflösung horizontal und vertikal vervierfacht sich die Anzahl der Rasterpunkte und damit vervierfacht sich der Rechenaufwand und Speicherverbrauch.
Die in Rasterpunkte aufgelöste Grafik wird nun durch den jeweiligen Ghostscript-Treiber in das letztlich gewünschte Format (zum Beispiel in die gewünschte Druckersprache) umgewandelt.
Ghostscript stellt nicht nur Druckertreiber zur Verfügung. Ghostscript kann auch PostScript-Dateien zur Bildschirmausgabe verarbeiten oder nach PDF umwandeln. Zur komfortableren Bildschirmausgabe von PostScript-Dateien sollte das Programm gv (gv) verwendet werden, weil es eine grafische Anwenderschnittstelle zu Ghostscript bietet.
Ghostscript ist ein sehr umfangreiches Programm mit zahlreichen Kommandozeilenoptionen. Die wichtigste Dokumentation ist neben der Manualpage von gs und der Liste der Ghostscript-Treiber zu finden unter:
file:/usr/share/doc/packages/ghostscript/catalog.devices
sowie in den Dateien:
file:/usr/share/doc/packages/ghostscript/doc/index.html file:/usr/share/doc/packages/ghostscript/doc/Use.htm file:/usr/share/doc/packages/ghostscript/doc/Devices.htm file:/usr/share/doc/packages/ghostscript/doc/hpdj/gs-hpdj.txt file:/usr/share/doc/packages/ghostscript/doc/hpijs/hpijs_readme.html file:/usr/share/doc/packages/ghostscript/doc/stp/README
Ein Direktaufruf von Ghostscript startet nach Abarbeitung der Kommandozeile einen Dialog mit eigener Eingabeaufforderung GS>, der mit dem Befehl quit beendet wird.
Der Hilfe-Befehl gs -h listet die nötigsten Optionen auf und gibt die aktuelle Liste der unterstützten Devices aus. Dabei erscheint nur die allgemeine Treiberbezeichnung wie uniprint oder stp, wenn ein einziger Treiber eine Vielzahl von Modellen unterstützt. Die Parameterdateien für uniprint und die Modelle von stp sind in file:/usr/share/doc/packages/ghostscript/catalog.devices explizit aufgezählt.
In file:/usr/share/doc/packages/ghostscript/examples finden Sie PostScript-Beispieldateien. Die Farbellipse file:/usr/share/doc/packages/ghostscript/examples/colorcir.ps eignet sich gut für einen Druckertest.
Unter X, der graphischen Oberfläche, können Sie eine PostScript-Datei mit dem Befehl gs am Bildschirm anzeigen lassen:
gs -r60 \ /usr/share/doc/packages/ghostscript/examples/colorcir.ps
Mit der Option -r wird die Auflösung angegeben, die aber zum jeweiligen Ausgabegerät (Drucker oder Bildschirm) passen muss (probieren Sie zum Beispiel -r30). Zum Beenden drücken Sie in dem Terminalfenster, von dem aus Sie gs aufgerufen haben, Strg + c .
Die Umwandlung einer PostScript-Datei in das druckerspezifische Format für einen PCL5e- oder PCL6-Drucker geschieht zum Beispiel mit dem Befehl
gs -q -dNOPAUSE -dSAFER -sOutputFile=/tmp/out.prn \ -sDEVICE=ljet4 -r300x300 \ /usr/share/doc/packages/ghostscript/examples/colorcir.ps \ quit.ps
wobei der Befehl in einer einzigen Zeile einzugeben und der Rückstrich (\) zu unterdrücken ist. Weiterhin wird vorausgesetzt, dass die Datei /tmp/out.prn noch nicht existiert.
Die Umwandlung einer PostScript-Datei in das druckerspezifische Format für einen PCL3-Drucker geschieht zum Beispiel mit:
gs -q -dNOPAUSE -dSAFER -sOutputFile=/tmp/out.prn \ -sDEVICE=deskjet -r300x300 \ /usr/share/doc/packages/ghostscript/examples/colorcir.ps \ quit.ps
Je nach Modell können Sie anstelle von deskjet als Device auch cdjmomo, cdj500 oder cdj550 verwenden oder auf den alternativen Treiber hpdj ausweichen:
gs -q -dNOPAUSE -dSAFER -sOutputFile=/tmp/out.prn \ -sDEVICE=hpdj -r300x300 \ -sModel=500 -sColorMode=mono -dCompressionMethod=0 \ /usr/share/doc/packages/ghostscript/examples/colorcir.ps \ quit.ps
Jeder Befehl kann auch ohne \, jedoch dann in einer einzigen Zeile eingegeben werden.
Die Umwandlung einer PostScript-Datei in das druckerspezifische Format für einen ESC/P2- oder ESC/P- oder ESC/P-Raster-Drucker geschieht zum Beispiel mit einem der folgenden Befehle:
gs -q -dNOPAUSE -dSAFER -sOutputFile=/tmp/out.prn \ @stcany.upp \ /usr/share/doc/packages/ghostscript/examples/colorcir.ps \ quit.ps
gs -q -dNOPAUSE -dSAFER -sOutputFile=/tmp/out.prn \ -sDEVICE=stcolor -r360x360 \ -dBitsPerPixel=1 -sDithering=gsmono -dnoWeave \ -sOutputCode=plain \ /usr/share/doc/packages/ghostscript/examples/colorcir.ps \ quit.ps
Hier sieht man den Unterschied im Aufruf bei Verwendung einer Parameterdatei stcany.upp für den uniprint-Treiber und bei einem der anderen Ghostscript-Treiber. Da alle treiberspezifischen Parameter in der uniprint-Parameterdatei stehen, sind keine weiteren treiberspezifischen Parameter anzugeben, ganz im Gegensatz zu den anderen Ghostscript-Treibern.
Nach jedem der obigen Befehle stehen die druckerspezifischen Daten in /tmp/out.prn, die nun mit folgendem Befehl von root direkt an den Drucker (also ohne Druckerspooler oder Druckerfilter) geschickt werden, sofern der Drucker an der ersten parallelen Schnittstelle /dev/lp0 angeschlossen ist: cat /tmp/out.prn >/dev/lp0
Ghostscript kann PostScript- und PDF-Dateien erzeugen, beide Formate ineinander umwandeln und PostScript- und PDF-Dateien auch in gemischter Reihenfolge aneinanderhängen.
Umwandlung von PostScript nach PDF:
gs -q -dNOPAUSE -dSAFER \ -sOutputFile=/tmp/colorcir.pdf -sDEVICE=pdfwrite \ /usr/share/doc/packages/ghostscript/examples/colorcir.ps \ quit.ps
Umwandlung der eben erzeugten PDF-Datei /tmp/colorcir.pdf nach PostScript:
gs -q -dNOPAUSE -dSAFER \ -sOutputFile=/tmp/colorcir.ps -sDEVICE=pswrite \ /tmp/colorcir.pdf quit.ps
Nach der Rückumwandlung von PDF nach PostScript stimmt die Datei /tmp/colorcir.ps nicht mit dem Original /usr/share/doc/packages/ghostscript/examples/colorcir.ps überein, aber im Ausdruck sollte kein Unterschied erkennbar sein.
Aneinanderhängen von PostScript- und PDF-Dateien zu einer PostScript-Datei:
gs -q -dNOPAUSE -dSAFER -sOutputFile=/tmp/out.ps \ -sDEVICE=pswrite \ /usr/share/doc/packages/ghostscript/examples/escher.ps \ /tmp/colorcir.pdf quit.ps
Aneinanderhängen von PostScript- und PDF-Dateien zu einer PDF-Datei:
gs -q -dNOPAUSE -dSAFER -sOutputFile=/tmp/out.pdf \ -sDEVICE=pdfwrite /tmp/out.ps \ /usr/share/doc/packages/ghostscript/examples/golfer.ps \ /tmp/colorcir.pdf quit.ps
Das Aneinanderhängen von PostScript- und PDF-Dateien funktioniert abhängig von der verwendeten Dateien leider nicht in jedem Fall.