Programme, die unter Linux druckbaren Output erzeugen möchten, kommen um die von Adobe entwickelte Seitenbeschreibungssprache PostScript nicht herum. Ihre Spezialität ist es, in einer eigenen Syntax all das exakt zu beschreiben, was als Grafik-Objekt auf einem Blatt Papier Platz findet – Linien, Bögen, Flächen, Punkte, Füllungen, Buchstaben in allen denkbaren Variationen. Fonts, Strichstärken, Farbtöne und -verläufe, Anordnung, Rotation, Skalierung, Verzerrung und viele andere Manipulationen der Darstellung sind machbar. PostScript kann sogar noch mehr als das: Es ist eine vollständige Programmiersprache, mit der sich notfalls die Zahl Pi berechnen, eine Festplatte formatieren oder eine Datei erzeugen lassen. Die neueste Version, PostScript 3, kann sogar "fremde" Formate wie JPEG oder TIFF in ihre Dateien einbetten.
Vorzeiten
Als PostScript 1985 auf den Markt kam, war das eine große Erleichterung für Anwendungsprogrammierer. Denn zuvor mussten sie für jede ihrer Applikationen und für jedes darin unterstützte Drucker-Modell einen eigenen Geräte-Treiber schreiben. Mit der neuen, zwischen Applikationen und Druckern angesiedelten PDL ("Page Description Language") galt es nur noch, alles, was für die Darstellung auf Papier vorgesehen war, in dieser Sprache auszudrücken. Die Aufgabe, aus dem Format der Anwendung PostScript zu erzeugen, fiel einem "Treiberprogramm" zu. Die Druckerhersteller waren dafür verantwortlich, dass ihre Geräte die PostScript-Anweisungen richtig umsetzten.
Im Laufe der Zeit kamen weitere Grafik- oder Seitenbeschreibungssprachen als Konkurrenz dazu. Denn Adobe verlangte für PostScript-Interpreter in den Druckern Lizenzgebühren. Verschiedene Hersteller wollten diese einsparen und entwickelten eigene PDLs.
Die wichtigsten sind heute PCL ("Print Control Language") von Hewlett-Packard, ESC/P ("Epson Standard Code for Printers") und GDI ("Graphical Device Interface") von Microsoft. Diese unterscheiden sich erheblich voneinander und sind weitgehend inkompatibel.
In professionellen Umgebungen (Desktop Publishing, PrePress und Publishing) ist PostScript nach wie vor unangefochten die Nummer Eins – genauso wie auf Linux-Systemen (obwohl gerade hier längst nicht das gesamte Potential von PostScript ausgeschöpft wird).
PostScript kann selbstverständlich auch "von Hand" programmiert werden. Listing 1 zeigt ein einfaches Beispiel. Wer es als Text-Datei abspeichert, kann es direkt an einen PostScript-fähigen Drucker schicken und ausdrucken. Am Bildschirm lässt sich die Datei mit verschiedenen PostScript-Viewern anschauen. gimp, ghostview oder gv sind dafür gleichermaßen geeignet. Zu sehen bekommt man (auf Bildschirm oder Papier) die Darstellung aus Abbildung 1.
Listing 1
Ein Schnipsel PostScript-Code
%!PS % Die ersten zwei Zeichen müssen immer '%!' sein. % zwei Vierecke % '%' leitet Kommentare ein. Der virtuelle 100 100 moveto % PS-Zeichenstift soll zur Koordinate (100,100) 0 50 rlineto % gehen, dann eine Linie 0 Einheiten nach rechts und 50 0 rlineto % 50 nach oben ziehen, weiter 50 nach rechts (0 nach 0 -50 rlineto % oben), zu guter Letzt 50 Einheiten senkrecht nach unten closepath % und diesen "Pfad" schließen, .7 setgray % als Farbton auf 70%-igen Grauwert schalten und fill % das entstandene Viereck mit dieser Farbe füllen. % % Das erstes Viereck ist fertig; die naechste Figur 160 100 moveto % wird auf analoge Weise konstruiert, 0 60 rlineto % allerdings mit z. T. "schiefen" 45 10 rlineto % Linien und mit einem dunkleren Grau gefüllt 0 -40 rlineto % (20% ist als PostScript-Farbwert closepath % dunkler als 70%). .2 setgray % fill % Der abschließende Befehl "showpage" weist showpage % den Drucker zum Seitenausstoß an.
Mit Zeilendruckern fing es an
Heutige Laserdrucker sind "Seitendrucker": Sie setzen das komplette Bild einer Seite zuerst pixelweise als Bitmap komplett in ihrem Arbeitspeicher zusammen, bevor dieses zu Papier gebracht wird. Ihre "Eigenintelligenz" lässt sie sogar als selbstständige Knoten in TCP/IP-Netzen fungieren.
Frühere Drucker waren "Zeilendrucker"; daher auch der Begriff "Line Printer". Grafik im heutigen Sinne war nicht druckbar, Drucker konnten nur Buchstaben und andere Zeichen wiedergeben und dabei maximal vier verschiedene Fonts benutzen. Seiten wurden Buchstabe für Buchstabe gedruckt (d. h., mechanisch auf das Medium gehämmert), wobei eine zickzackgefaltete Papierschlange aus einem Karton gezogen und durch den Drucker geführt wurde. Die Geräte waren direkt (meist über eine serielle Schnittstelle) am Host angeschlossen. "Netzwerk"-Drucken bedeutete, die Druckdatei von einem Host an einen anderen zu übertragen, damit dieser sie an einem bei ihm angeschlossenen Gerät ausgab.



