PostScript
# PostScript

PostScript ist eine Seitenbeschreibungssprache, die in den frühen 1980er Jahren von Adobe entwickelt wurde. Sie wird üblicherweise als Vektorgrafikformat für Dokumente und Drucker verwendet, stellt jedoch auch eine Turing-vollständige, stackorientierte Programmiersprache dar. PostScript ist eine Weiterentwicklung von Interpress.

## Geschichte

Die Ideen für Postscript entstanden in über 10 Jahren Arbeit von John Warnock. John Warnock arbeitete zunächst noch bei Evans & Sutherland, dann für Charles Geschke bei Xerox im PARC (Palo Alto Research Center). Als Warnock keine Perspektiven für eine kommerzielle Nutzung durch Xerox sah, gründete er zusammen mit Charles Geschke 1982 Adobe Systems Inc.

## Verbreitung

PostScript hat sich über die Jahre hinweg zu einem Standard in der Druckindustrie entwickelt, wurde aber größtenteils vom Portable Document Format (PDF) verdrängt, das ebenfalls von Adobe entwickelt wurde und viele Eigenschaften von PostScript übernommen oder verbessert hat.
Desktoppublishing-Programme verfügen in der Regel über eine PostScript-Exportfunktion. Praktisch kann aber aus jeder Anwendung (zum Beispiel aus beliebigen Textverarbeitungsprogrammen) mit Hilfe eines PostScript-Druckertreibers PostScript-Code erzeugt werden, der entweder direkt an ein postscriptfähiges Ausgabegerät gesendet oder in eine Datei geschrieben werden kann. Einzelne Seiten bzw. Grafiken im PostScript-Format können von Desktoppublishing-Programmen und einigen anderen Anwendungen in der Form von Encapsulated-PostScript-Dateien auch importiert werden.
In unixähnlichen Betriebssystemen ist es üblich, dass Anwendungsprogramme Druckaufträge in PostScript an den Druckerserver oder das lokale Drucksystem senden. Dieses rechnet die PostScript-Daten, meist mit Hilfe von Ghostscript, in gerätespezifischen Code um.

## Funktionsweise

Grafiken und Druckseiten werden als Dateien im PostScript-Format angelegt, um sie auf den unterschiedlichsten Ausgabegeräten in beliebiger Größe und Auflösung verlustfrei ausgeben zu können. Dazu werden grafische Elemente und Schriften als skalierbare Vektorgrafik beschrieben. Rastergrafiken können ebenfalls eingebettet werden; sie werden je nach Auflösung des Ausgabegeräts neu skaliert.
PostScript ist eine Turing-vollständige Programmiersprache. Sie ist stapelorientiert und funktioniert nach dem Prinzip der umgekehrten polnischen Notation. Vorbild war die Programmiersprache Forth. Postscriptfähige Ausgabegeräte (insbesondere Drucker und Druckmaschinen) sind mit einem Raster Image Processor (RIP), also einem Interpreter auf Hardware- oder Software-Basis, ausgestattet, der das PostScript-Programm Stück für Stück auswertet und in eine Rastergrafik umsetzt (siehe auch Postscript-Druckraster). Durch diese sequenzielle Befehlsausführung hat man in PostScript-Dateien keinen direkten Zugriff auf einzelne Seiten. Eine freie Software-Implementierung eines solchen Interpreters bietet die Software Ghostscript.

## Ein Programmbeispiel

Ein Programmbeispiel ist:
Das Programm schreibt „Hallo Welt!“ an die Position 50,50. Sofern das Koordinatensystem nicht verändert wurde, beginnt es links unten.

## PostScript Level

Der Funktionsumfang von PostScript wurde zweimal erweitert. Die Erweiterungen sind bis auf eine Ausnahme abwärtskompatibel.

### Level 2

Postscript Level 2 ist eine vollständig abwärtskompatible Erweiterung der PostScript-Spezifikation, die schneller und zuverlässiger arbeitet als Level 1. Hinzugefügt wurde beispielsweise die Unterstützung von eingebetteten JPEG-Bilddaten. Einige zusätzliche Funktionen wurden im Hinblick auf die interaktive Verwendung mit Display PostScript eingeführt, speziell das sogenannte „Insideness Testing“, mit dem geprüft werden kann, ob beispielsweise ein Punkt („Mausklick“) innerhalb eines Pfades liegt.

### PostScript 3

Diese Version wurde 1997 veröffentlicht. Adobe entfernte den Namensbestandteil „Level“ zu Gunsten eines einfacheren Namens. Eine wichtige Erweiterung ist ein neues Farbmodell namens DeviceN, welches möglichst präzise Farben auf allen Ausgabegeräten garantieren soll. Das DeviceN-Modell unterstützt die Abbildung von Hexachrome- oder Duplex-Färbungen, was bislang nur durch bereits in einzelne Farbauszüge ausseparierte Seiten umgesetzt werden konnte.

## Display PostScript

Das Betriebssystem NeXTStep verwendete PostScript als sogenanntes Display PostScript auch für die Bildschirmdarstellung.
Das in Mac OS X verwendete Grafiksystem Quartz, das man als Nachfolger von Display PostScript verstehen kann, verwendet ein Grafikmodell, das sich an PDF anlehnt und eine Teilmenge von PDF 1.2 implementiert. Programme, die Quartz für ihre Grafikausgaben verwenden, können so ganz leicht PDF-Dateien erzeugen. Die Transparenzfunktion von PDF wird von Quartz nicht direkt unterstützt, Mac OS X behandelt transparente Objekte auf andere Weise.
PDF-Features wie Hypertext und Formulare werden in Programmen, die Quartz verwenden, außerdem anders realisiert als im PDF-Standard, so dass nicht von einer vollständigen Kompatibilität zu PDF gesprochen werden kann.

## Schriften (Fonts)

PostScript benutzt eigene Fontformate, deren Glyphen mit PostScript beschrieben werden und die sich insbesondere von dem auf Apple- und Windows-Plattformen gängigen TrueType-Format unterscheiden.

## PostScript und PDF

Das ebenfalls von Adobe entwickelte Portable Document Format (PDF) lehnt sich an PostScript an. Die wichtigsten Unterschiede zu PostScript sind, dass PDF sehr viel strikter strukturiert und keine Programmiersprache ist (siehe Adobe PDF Referenz 1.7, z. B. Seite 45 oder Seite 166). PDF gewährleistet beispielsweise, dass gezielt auf beliebige Seiten eines PDF-Dokuments zugegriffen werden kann. In PostScript erfordert dies, zuvor den Programmcode aller vorausgehenden Seiten zu interpretieren.
PostScripts Grafikmodell wurde in PDF übernommen und erweitert. Beliebige PostScript-Dateien können daher ohne Verlust grafischer Informationen in PDF-Dateien umgewandelt werden. Umgekehrt ist dies nur möglich, wenn das PDF-Dokument auf in PostScript fehlende Elemente wie Transparenz verzichtet. Darüber hinaus kann PDF ausfüllbare Formulare, Pop-up-Kommentare, Video- und Audiomaterial, semantische Tags und weitere Elemente enthalten, die über PostScripts mitgeliefertem Funktionsumfang hinausgehen.

## Versionsgeschichte

* PostScript Level 1: 1984
* Display PostScript: 1988
* PostScript Level 2: 1991
* PostScript 3: 1997

## Verwandte Sprachen und Formate

* Encapsulated PostScript (EPS)
* Portable Document Format (PDF)
* Variable Print Specification (VPS)
* Extensible Stylesheet Language – Formatting Objects (XSL-FO)
* Printer Command Language (PCL)
* SVG – Der XML-kodierte Abkömmling.