PostScript ist eine Seitenbeschreibungssprache, die von der Firma Adobe entwickelt und betreut wird. Für eine möglichst weite Verbreitung wird sie von Adobe als offener Standard zur kostenlosen Verwendung freigegeben. Die Idee hinter dieser Sprache ist eine geräteunabhängige Darstellung von grafischen Produkten. Zuerst handelte es sich bei diesen Geräten hauptsächlich um Drucker, eine angepasste Version unter der Bezeichnung Display PostScript wird aber auch für die Darstellung auf Bildschirmen verwendet. PostScript ist turing-vollständig und verwendet von Menschen lesbaren Programmtext.
Inhalt
Die Eigenschaften der Sprache
In PostScript werden Text und Bilder als Vektorgrafik angegeben, was die verlustfreie Wiedergabe in verschiedener Größe ermöglicht. Auch stehen in der Sprache zahlreiche Fonts zur Verfügung, die vektorgrafisch definiert sind. Im Gegensatz dazu wird aus Pixeln bestehende Grafik je nach Größe in unterschiedlicher Qualität dargestellt. Manche Bilder liegen allerdings nur in Pixelform vor. Seit der Version 2 kann eine solche Grafik bei Bedarf in eine PostScript-Datei eingebettet werden.
Die Wiedergabe dieses Teils der Datei erfolgt je nach Ausgabegerät allerdings unter den Einschränkungen, die für alle Pixelgrafiken gelten.Eine Besonderheit von PostScript ist die Abarbeitung aller Befehle, bevor eine Grafik tatsächlich dargestellt wird. Das gilt für das ganze Dokument und bedeutet, dass ein Befehl auf mehrere Seiten Auswirkungen haben kann. Es ist also nicht einfach möglich, nur den Programmcode für eine Seite aus einem PostScript-Programm zu isolieren.
PostScript als Programmiersprache
Obwohl es sich der Verwendung nach um eine Seitenbeschreibungssprache handelt, ist PostScript als Programmiersprache turing-vollständig. In dieser Sprache kann man also nicht nur Instruktionen für die Erstellung einer Grafik, sondern beliebige Algorithmen implementieren. Das mag eigenartig scheinen, ist für die Behandlung von Vektorgrafik allerdings durchaus nützlich und sinnvoll. Es ermöglicht etwa, Skalierungsrechnungen im Dokument zu spezifizieren. Eine größere Anwendung ist die Erstellung von QR-Codes, die Daten als zweidimensionale grafische Objekte darstellen. Diese können von Scannern eingelesen werden, was auch zum Funktionsumfang vieler Smartphones gehört. Dem Charakter nach handelt es sich um eine stackorientierte Programmiersprache in umgekehrt-polnischer Notation. Die größten Ähnlichkeiten weist PostScript zur Programmiersprache Forth auf.
Wie genau funktioniert PostScript?
Der Programmtext wird in den meisten Anwendungen automatisch erzeugt, er kann aber auch direkt von menschlichen Programmierern geschrieben werden. Das klassische minimale Beispiel zur Demonstration einer Programmiersprache gibt die Worte „Hallo, Welt!“ aus. Als ps-Datei sieht dieses Programm folgendermaßen aus.
%!PS
/Courier
20 selectfont
72 500 moveto
(Hallo, Welt!) show
showpage
Die erste Zeile identifiziert die Programmiersprache. In der zweiten und dritten Zeile werden die Art der Schrift und ihre Größe festgelegt. Dann wird die Position des Textes auf der Seite angegeben und darauf der Text selbst. Die letzte Zeile enthält den Befehl zur Ausgabe des Dokuments.
Verwendung von PostScript
Die Standardisierung durch diese Seitenbeschreibungssprache löst das Problem der Verbindung zwischen der Erstellung von Dokumenten und ihrem Druck oder ihrer Darstellung auf einem Bildschirm. Das Dokument selbst lässt sich mit einem von sehr vielen Programmen erstellen. Daraus erzeugt man eine PostScript-Datei und versieht diese mit der Dateiendung .ps. Ein Interpreter wandelt die ps-Datei in das Rasterdatenformat des Ausgabegeräts um. Diese zweistufige Umwandlung ist erheblich effizienter, als wenn für jedes Programm für Text- und Bildbearbeitung eine direkte Transformation für eine Vielzahl von Ausgabegeräten berechnet werden müsste.
In teuren Druckern ist diese Vorgehensweise immer noch der übliche Standard. Preiswerte Drucker verwenden seit dem Jahr 2000 Alternativen wie das PDF-Format, das seinerseits viel von seinem Vorgänger übernommen hat.
Ein weit verbreiteter Interpreter ist Ghostscript. Er ist in der Programmiersprache C geschrieben und deshalb auf vielen Plattformen verfügbar. Ein möglicher Test für eine Installation von Ghostscript ist die Eingabe des obigen kleinen Programms. Display PostScript ist nicht für Drucker, sondern für die Darstellung von Grafik auf Bildschirmen optimiert. Lesen Sie hier alles über Ghostscript.
Eine Anpassung auf Bildschirme musste deshalb erfolgen, weil für diesen Zweck im Gegensatz zum Druck eine seitenweise Darstellung erforderlich ist. Auch interaktive Eingaben wie über eine Maus sind nur für Bildschirmdarstellungen sinnvoll. Optimiert wurde auch die Verarbeitungsgeschwindigkeit, da ein Rendering auf Bildschirmen viel zeitkritischer ist als für einen Druck.
Geschichte und Versionen
Die erste Version der Sprache gab es im Jahr 1984. Der Standard wurde und wird immer noch von der 1982 gegründeten Firma Adobe betreut. Er baute auf Vorarbeiten auf, die von John Warnock bei seinem früheren Arbeitgeber Xerox vorhanden war. Die zweite Version trägt die Bezeichnung „level 2″ und kam 1991 heraus. Eine Verbesserung trat sowohl in der Zuverlässigkeit als auch in der Verarbeitungsgeschwindigkeit auf. Seit 1991 ist es zudem möglich, Rastergrafiken im Format JPEG in ein PostScript-Dokument einzubetten. Die neueste Version von mit der Nummer 3 erschien im Jahr 1997. Zu den wesentlichsten Änderungen gehörte eine bessere Kontrolle der Farben in Dokumenten. Außerdem erhöhte sich die Zahl der möglichen Graustufen von 256 auf 4096.
Zur Geschichte von PostScript gehört auch das Format PDF, das die Firma Adobe betreut und in vielen Punkten auf seinem Vorgänger aufbaut. Im Gegensatz zu seinem Vorgänger ist PDF keine turing-vollständige Programmiersprache. Das Format PDF bietet allerdings erweiterte grafische Möglichkeiten wie transparente Dokumente. Mit einem geeigneten Programm kann man eine PDF-Datei am Bildschirm mit Text erweitern und so wieder abspeichern. Eine typische Anwendung dafür sind ausfüllbare Formulare. PDF bietet auch eine wesentlich bessere Komprimierung, was zu viel kleineren Dateien führt als eine Darstellung in reinem PostScript.