Uni ZH |
Informatikdienste
| PostScript
| Abfrage Operatoren (cgi)
| Abfrage Operatoren (php)
- PostScript as a page description language
- Was ist PostScript?
PostScript
(from Adobe Systems)
is an interpreted, stack-oriented
language for describing,
in a device-independent fashion,
the way in which pages can be composed
of characters, shapes, and digitized images in black and white,
gray scale, or color.
Concerning the text/graphics field,
PostScript is now the most widely used printer controller
in the industry.
It gives computer users total control over text, graphics,
color-separations, and halftones.
The page description language recognizes a
page that is created by the user, as a unity
and converts the elements of the page into control data
for the output device.
The printing engine receives the control data in its own
format and resolution.
The resolution of these control data amounts
for instance
to 300 dots per inch (dpi) on a page printer or 1000 dots per cm
on a typesetter.
Today, PostScript compatible imagesetters are sold by all
manufacturers of typesetters.
PostScript language programs are used
for communication between a software product (PageMaker for instance)
and a printing system, and enable the user to mix text, graphics, and
images from various sources.
Short comparison between PostScript and C
The page description language serves as an interface between an
application program and a printing subsystem.
Normally, the PostScript language
code is generated by a driver program, e.g. by
MS Windows, Adobe Illustrator,
PageMaker.
However, PostScript can be generated by the end-user
as well as a piece of a Lisp or C program.
Let's take the first program from the "C book" by Kernighan
and Ritchie:
main()
{
printf("hello, world\n");
}
This program prints the character string
hello, world
and makes a final line feed to the beginning
of the next line.
When you try to translate this program into PostScript,
it may look as follows:
%!
/Courier findfont 10 scalefont setfont
0 100 moveto
(hello, world) show
0 88 moveto
showpage
At first glance,
you cannot find much similarity between the two.
This is because PostScript is a graphical
programming language.
You have to specify how the character string will be printed:
- In which typeface (Courier).
- In which point size (10).
- At which starting position or coordinate point respectively
(0 100 moveto
means
move 0 points to the right and 100 points up from the lower left corner
of the paper sheet).
In addition, we program the line feed
(\n)
by doing a vertical motion
downwards (0 88 moveto).
PostScript program structure.
An der Uni Zürich stehen über 800 Laserdrucker im Einsatz.
Der weitaus grösste Teil davon ist mit einem sogenannten
PostScript-Kontroller
ausgerüstet, da das RZU seit 1985
eine entsprechende Flottenpolitik verfolgt hat.
Aber was ist PostScript?
Chamäleon
Ein deutsches PC-Magazin hat PostScript einmal als Chamäleon
bezeichnet. Diese Bezeichnung ist gar nicht so schlecht,
verfügt doch PostScript über sehr viele Facetten.
- Zuerst ist PostScript eine Seitenbeschreibungssprache, welche
einzelne Druckseiten -- etwa im DIN-Format A4 -- beschreibt.
Druckelemente können Schriftzüge, Text, Fonts, Striche,
Kurven,
Farben und Bilder sein. Vereinfacht gesagt steuert PostScript
einen Seitendrucker. Der PostScript-Code wird gewöhnlich von
einer PC-Applikation erzeugt.
- Aber PostScript ist auch eine
ausgewachsene Programmiersprache
mit allen Attributen einer herkömmlichen
Programmiersprache:
z.B. Datentypen (einfache Zählvariablen, Arrays = Zahlenvektoren, Strings = Zeichenketten) und Kontrollmöglichkeiten (Bedingungen, Schleifen, Prozeduren).
Dies heisst nicht, dass jeder PC-Benutzer die PostScript-Sprache
kennen oder gar PostScript-Programmierer werden müsste. Die Kenntnis
von PostScript ebnet dem Endbenutzer allerdings den Weg für
die Integration von Text, Fonts, Grafik und Bildern.
- Dann kann PostScript auch einzelne Illustrationen beschreiben; viele
Software-Komponenten verwenden EPS-Files
(Encapsulated PostScript Format)
als Austauschformat.
- In der grafischen Industrie steht ein anderer Aspekt von PostScript im
Vordergrund: die zahlreichen professionellen Fonts oder Schriftschnitte, die
intern PostScript-mässig kodiert sind (Umrisse, Bezierkurven, Adobe Font
Technologie, Hints).
- Im Zusammenhang mit Workstations spricht man vom Imaging-Modell, welches
angibt, auf welche Art und Weise zweidimensionale grafische Objekte
oder Elemente definiert und gezeichnet werden.
PostScript wurde nicht für 3D-Grafik geschaffen.
- Und schliesslich gibt es auch Display PostScript, das für eine optimale
Uebereinstimmung zwischen Druckausgabe und Bildschirmdarstellung sorgt.
Typischer PostScript-Effekt: ein farbiges Textrad
Als Beispiel hier ein kleines PostScript-Programm, das
die beiden Ressourcen Fonts und Farben demonstriert:
%!PS-Adobe-2.0 EPSF-2.0
%%BoundingBox: 0 0 600 600
%%EndComments
100 100 translate
2 2 scale
0 0 200 200 rectfill % schwarzer Hintergrund
gsave
/Times-Italic findfont 24 scalefont setfont % Schrift
100 100 moveto
/width (XX) stringwidth pop def % Zeichenbreite
0 1 18 div 1 { 1 1 sethsbcolor
20 rotate % drehen
gsave width 0 rmoveto (UNIX) show grestore
} for
grestore
showpage % Seite drucken
Das Beispiel
dreht und zeichnet einen Schriftzug "UNIX" achtzehnmal.
Der Farbton geht in 1/18-Schritten von 0 bis 1, sodass das Textrad mit der
ganzen Farbenpracht glänzt:
die Färbung beginnt bei Rot (Abb., rechts), geht im Gegenuhrzeigersinn über
Orange nach Gelb (oben), dann via Grün (links) nach Blau (unten) und
schliesslich über Violett wieder nach Rot.
Falls -- wie meist -- kein Farbdrucker zur Verfügung steht,
werden die Farben in Graustufen umgewandelt.
Zum im Programm verwendeten
Zeichensatz
sind folgende Punkte
anzumerken:
Mit dem %-Zeichen wird ein PostScript-Kommentar eingeleitet.
Alle Zeichen bis zum Zeilenende werden dann vom PostScript-Interpreter
als Kommentar angesehen und nicht mehr beachtet.
Zeichenketten stehen zwischen runden Klammern. Beispiel:
(UNIX)
Die geschweiften Klammern weisen immer auf etwas Ausführbares hin.
Im Beispiel steht der gesamte Schleifenkörper innerhalb
geschweifter Klammern.
Grafische Fileformate
Die "Graphics File Formats" dienen dazu, eine Datei
nach deren Datentyp zu klassieren.
Bitmap- oder Raster-Files bestehen aus einzelnen Bildpunkten
(mit Farben oder Graustufen)
und enthalten typischerweise Foto-Bilder -- Beispiel: TIFF.
Vektordaten bestehen aus mathematischen Gleichungen und
enthalten Strichzeichnungen und CAD-Informationen.
Metafiles können sowohl aus Bitmap- als auch Vektor-Daten
bestehen -- Beispiel: Apple PICT.
Seitenbeschreibungssprachen (Page Description Languages)
wie PostScript beschreiben Druckseiten,
die aus Text und Grafik zusammengesetzt sind.
Allerdings kann ein PostScript-File
neben Text und Grafik auch Bilder enthalten.
In EPS-Files sind häufig Firmenlogos abgelegt.
Im Gegensatz zu PostScript ist PCL lediglich eine Kommandosprache
für die Druckersteuerung.
Eine Animation besteht aus einer Reihe von Bildern,
die in Serie gezeigt werden.
Multidimensionale Formate beschreiben Objekte, die aus verschiedenen
Perspektiven betrachtet werden können.
Multimedia-Formate können sämtliche der oben erwähnten
Datenformate speichern, einschliesslich Video und Ton.
Ein Hypertext-File enthält Hypertext-Links, d.h.
sensitive Textstelle
(meist farbig gekennzeichnet), die auf andere Dokumente verweisen.
In der PC-Welt gibt es eine Vielzahl von Konversionsprogrammen, die ein
Grafikformat in ein anderes umwandeln können.
Einige Arten der Formatumwandlung:
- Bildpunktformat -> Bildpunktformat (relativ einfach)
- Vektorgrafik -> Vektorgrafik (je nach Funktionsumfang
können einzelne Elemente nicht abgebildet werden)
- Vektorgrafik -> Bildpunktformat (ist mit einem Informationsverlust
verbunden)
- Bildpunktformat -> Vektorgrafik (eher schwierig)
PostScript-Fehler:
typische Fehlersituationen
Möchten Sie noch ein Wasserzeichen fabrizieren?
Literatur
Vollenweider, Peter: PostScript, 2. Auflage, Carl Hanser Verlag,
München und Wien, 1991.
Buchdeckel
(Auflagen von 2000 und 1000 Ex. sind vergriffen).
Uni ZH |
Informatikdienste
| PostScript
Last update: Sunday, 26-Dec-2004 22:12:27 CET by
vo