Beschreibungsformate

  1. Virtual Reality Modeling Language VRML

  • TeX und Device Independent fileformat DVI

  • Rich Text Format RTF
  • Office Document Architecture ODA and Interchange Format
  • PostScript
  • Portable Document Format PDF
  • Im folgenden Kapitel werden bereits vorhandene Formate vorgestellt, die eventuell für das GUT - Format von Bedeutung sein könnten.
    Hierbei wird hauptsächlich auf die Layoutbestandteile der Formate eingegangen.
    Die hier zusammengetragenen Formate sind keine vollständige Auflistung, sondern nur ein Auszug von denjenigen Formaten, die für die Diplomarbeit relevant sind.

    Virtual Reality Modeling Language VRML

    Geschichte
    VRML entstand im Frühjahr 1994 auf der ersten Jahreskonferenz in Genf. Ein Arbeitsgruppe wurde von Tim Berners-Lee und Dave Raggett organisiert, um über Virtual Reality - Schnittstellen zum World Wide Web zu beraten. Dort wurde beschlossen, daß es eine Entsprechung von HTML für 3D - Beschreibungen geben soll. So entstand das Wort VRML, was zunächst Virtual Reality Markup Language bedeutete, und welches später in Virtual Raelity Modeling Language umbenannt wurde, um auf den graphischen Charakter von VRML hinzuweisen.
    Mit Hilfe des amerikanischen Magazins "wired" wurde eine Electronic Mailing List ins Leben gerufen, die schnell über tausend Mitglieder hatte, und in der nach intensiver Diskussion Konsens darüber gefunden wurde, welche Grundvoraussetzungen VRML erfüllen soll.

    Grundlagen
    VRML soll folgende Anforderungen erfüllen

    Änlich wie bei HTML-Files kann der Anwender auch bei VRML Inhalte einer Datei betrachten und über Links andere VRML - Welten oder HTML - Seiten anwählen. VRML beschreibt dreidimensionale Geometrien und deren Darstellung auf einem Viewer, der neben der Darstellung von VRML auch eine Schnittstelle zu HTML - Browsern hat.

    Sprache
    Die Virtual Reality Modeling Language (VRML) ist eine Sprache zur Beschreibung von interaktiven Simulationen mit mehreren Teilnehmern, wobei diese sowohl aktive als auch passive Teilnehmer sein können. Diese Simulationen können an das World Wide Web durch Hyperlinks angebunden werden.

    In der höchsten Abstraktionsstufe stellt VRML nur eine Art dar, wie Objekte sich selber lesen und schreiben können. VRML beschreibt Szenen durch Objekte, sogenannte Nodes, die festlegen, wie dreidimesnionale Objekte eingelesen und als Computergraphik auf dem Bildschirm dargestellt werden sollen.

    VRML verwendet ein kartesisches,nach rechts geöffnetes, dreidimensionales Koordinatensystem. Als Voreinstellung werden Objekte auf einem zweidimensionalen Gerät dargestellt, in dem sie in Richtung der positiven Z - Achse projeziert werden, mit der positiven X - Achse nach rechts und der positiven Y - Achse nach oben. Bestimmte Funktionen können diese Voreinstellungen verändern.

    Das Layout wird durch die Nodes festgelegt, wobei drei unterschiedliche Klassen von Nodes existieren:


    Beispiel
    Beispiel eines einfachen VRML - Programmes [8], das einen Blick auf einen roten Kegel und eine blaue Kugel beschreibt, die von einem gerichteten Licht bestrahlt wird:

    #VRML V1.0 ascii
    Seperator {
    	DirectionalLight {
    	     direction 0 0 -1 
    	}
    	PerspectiveCamera {
    	     position        -8.6 2.1 5.6
    	     orientation     -0.1352 -0.9831 -0.1233 -1.1417
    	     focalDistance   10.84
    	}
    	Seperator {			(Beschreibung des Kegels folgt)
    	     Material {
    		 diffuseColor 1 0 0	(Farbe wird auf rot gesetzt)
    	     }
    	     Translation { 
    		 translation 3 0 1 
    		 }
    	     Sphere {			(Kegel wird gezeichnet)
    		 radius 2.3
    		 }
    	}
    	Seperator {			(Beschreibung der Kugel folgt)
    	     Material {
    		 diffuseColor 0 0 1     (Farbe wird auf blau gesetzt)
    	     }
    	     Transform {
    		 translation -2.4 .2 1
    		 rotation 0 1 1  .9
     	     }
    	     Cube {}			(Kugel wird gezeichnet)
    	}
    }
    
    

    Bewertung
    Die ursprüngliche Intension von VRML war, dem Menschen das Navigieren im World Wide Web zu erleichtern, da die direkte Referenzierung mit der URL (Uniform Resource Locator) nicht in einer für den Menschen verständlichen Form möglich ist. VRML sollte ein universelles räumliches Koordinatensystem darstellen, welches das ganze Internet umspannt, um damit das Manövrieren im Netz zu erleichtern. Für die vorliegende Aufgabe ist diese Sprache zu sehr an der Dreidimensionalität ausgerichtet. Beim GUT - Format geht es darum, Objekte miteinander in Beziehung zu bringen. Bei VRML jedoch steht das Positionieren im dreidimensionalen Raum im Vordergrund.

    TeX

    Geschichte
    Donald E. Knuth entwickelte 1978 die erste Version von TeX. Diese wurde dann von einer überarbeiteten und verbesserten Version verdrängt, die 1984 veröffentlicht wurde.
    Der Name TeX entstand aus dem griechischen Wort TeX, was sowohl Kunst als auch Technik bedeuten kann. Der Ursprung des Namens beschreibt das Ziel von TeX, nämlich Dokumente in höchster Qualität zu erzeugen. Bei TeX wird besonderen Wert auf ein perfektes Layout von technischen Dokumenten gelegt, was im Detail zunächst sehr kompliziert sein kann.

    TeX kann sehr komplexe Seiten aufbauen, beginnt dabei aber immer mit den einfachsten Elementen, den einzelnen Buchstaben. Diese werden dann in größere Einheiten zusammengefaßt, diese wiederum in größere und so weiter.
    Dieses System des Gruppierens in immer größere Einheiten wird mit den Begriffen Boxes und Glue bezeichnet.

    Boxes:
    In TeX werden 2-dimensionale Boxes verwendet.

    Boxes sind rechteckig, haben drei Abmessungen (Höhe, Tiefe und Breite), besitzen eine Basislinie und einen Referenzpunkt. Bei TeX ist bereits ein Einzelbuchstabe eine Box, bei dem der Designer des Fonts festgelegt hat, wie der Buchstabe im Endeffekt aussieht, indem er Höhe, Tiefe und Breite festlegt. Diese Dimensionsangaben werden auch verwendet, um Boxes "`aneinanderzukleben"' und schließlich auch um den Platz der Referenzpunkte auf einer Seite zu bestimmen. Symbole können die Grenzen ihrer Boxen überschreiten, wenn zum Beispiel für eine Formel größere Klammern gebraucht werden, TeX behandelt diese Boxen genauso wie andere gleichgroße, also wie andere mit denselben Dimensionsangaben. Das kann natürlich zu Überschneidungen führen, doch passiert das gewöhnlich nicht, solange die Basislinien auf einer Höhe gehalten werden.

    Neben diesen eben besprochenen character boxes gibt es auch noch rule boxes die zum Darstellen zum Beispiel von Strichen verwendet werden, da sie gänzlich schwarz ausgefüllt sind.
    Alles was auf einer TeX - Seite erscheint entsteht also aus einfachen character boxes und rule boxes die aneinandergehängt werden. Dies kann auf zwei Arten geschehen, nämlich horizontal oder vertikal. Beim horizontalen Aneinanderfügen werden die Referenzpunkte auf einer waagerechten Linie aneinandergereiht, so daß die Basislinien benachbarter Boxen aneinanderpassen. Bei vertikalem Aneinanderhängen von Boxen sind entsprechend die Referenzpunkte vertikal aneinander ausgerichtet.
    [2]

    twolines

    Beliebig komplizierte Texte können mit Hilfe von Listen vertikaler und horizontaler Boxen dargestellt werden, die auf einfache Weise miteinander verknüpft werden.

    Glue:
    Neben Boxen existiert noch "glue", TeX's Art Boxen aneinanderzureihen. So sind zwischen einzelnen Zeilen und Wörtern Freiräume. Diese Freiräume sind nicht etwa leere Boxen sondern Teile des Glues (deutsch: Leim) zwischen Boxen. Dieser Glue kann gestreckt oder verkürzt werden, so daß die Seiten später schön formatiert werden können.
    Glue hat drei Attribute, space (Zwischenraum, Leerraum), stretch (strecken, ausdehnen) und shrink (schrumpfen, verkleinern). [2]

    glue

    Die totale Breite der Boxen und Glues in diesem Beispiel sind:

    5 + 9 + 6 + 9 + 3 + 12 + 8 = 52 Einheiten

    Dies ist die " natürliche " Breite der horizontalen Liste. Diese Breite kann durch stretch und shrink jetzt beliebig beeinflußt werden.

    Device-independent (DVI) file format

    Ein Ergebnis einer Übersetzung eines TeX - Files ist das device independent (DVI) - file, in dem festgelegt ist, wo die Buchstaben und Graphiken auf der Ausgabeseite erscheinen sollen. Die Form dieser Files wurde von David R. Fuchs schon 1979 entwickelt und zielt hauptsächlich auf Drucker als Ausgabegeräte ab.

    Ein DVI - File ist eine Folge von Bytes, die wie eine Folge von Kommandos in Maschinensprache aussehen. Das erste Byte jedes Kommandos ist der Befehlscode und darauf folgen 0 oder mehrere Bytes mit den Parametern des Kommandos.

    Ein DVI - File besteht aus einer preamble die vor mehreren pagessteht, und denen eine postamble folgt.

    Eine preamble ist einfach ein pre Kommando, bei dem die im File verwendeten Parameter stehen. In ihr stehen grundlegende Informationen über das File als Ganzes.

    Eine page besteht aus einem bop (begin of page) - Kommando, einer Folge anderer Kommandos, die Auskunft darüber geben, wo Buchstaben auf der Ausgabeseite stehen, und schließlich ein eop (end of page) - Kommando. Jedem eop kann direkt ein bop folgen, falls das Dokument mehr als eine Seite lang ist. Der letzten Seite eines Dokumentes folgt post. Dieses Kommando kündigt die postamble an.

    In der postamble werden wichtige Fakten aufgeführt, die TeX über das File gesammelt hat. Dadurch wird es ermöglicht, daß Teile der Daten mit großer Effizienz ausgegeben werden können.

    Das DVI - Format soll sowohl kompakt als auch einfach interpretierbar sein. Kompaktheit wird dadurch erreicht, daß der Großteil der enthaltenen Informationen implizit und nicht explizit vorliegt. Ein DVI - lesendes Programm merkt sich beim Lesen der Kommandos einer Seite gewisse Zahlen, wie zum Beispiel die Zahl f, in der der aktuelle Font steht, oder b,in der die aktuelle Position auf der Seite mit Hilfe der horizontalen und vertikalen Koordinaten h und v steht. h und v stehen beim Wert 0 auf der oberen linken Ecke der Seite und werden in der jeweiligen Richtung durch Erhöhen ihrer Werte verschoben.

    Beispiel
    Ein sehr kurzes Beispiel eines TeX - Programmes ist das folgende:

    
    Das ist eine erste Zeile.
    Hier ist ein Umlaut: \"a
    \par
    und jetzt eine linie: \hrule height 1pt width 50mm
    \bye
    
    
    Das kurze Beispiel eines TeX - Programmes von vorher liefert bereits ein langes DVI - Programm als Ausgabe. In diesem Fall hat das nach dem TeX - Lauf entstandene Programm eine Länge von 124 Zeilen. Hier jetzt eine leicht verkürzte Fassung:
    
    numerator/denominator=25400000/473628672
    magnification=1000;       0.00006334 pixels per DVI unit
    ' TeX output 1995.10.16:1119'
    Postamble starts at byte 252.
    maxv=43725786, maxh=30785863, maxstackdepth=2, totalpages=1
    Font 0: cmr10---loaded at size 655360 DVI units
    
    42: beginning of page 1
    87: push
    level 0:(h=0,v=0,w=0,x=0,y=0,z=0,hh=0,vv=0)
    88: down3 -917504 v:=0-917504=-917504, vv:=-58
    92: pop
    level 0:(h=0,v=0,w=0,x=0,y=0,z=0,hh=0,vv=0)
    93: down4 42152922 v:=0+42152922=42152922, vv:=2670
    98: push
    level 0:(h=0,v=42152922,w=0,x=0,y=0,z=0,hh=0,vv=2670)
    99: down4 -41497562 v:=42152922-41497562=655360, vv:=42
    104: push
    level 1:(h=0,v=655360,w=0,x=0,y=0,z=0,hh=0,vv=42)
    105: right3 1310720 h:=0+1310720=1310720, hh:=83
    [ ]
    109: fntdef1 0: cmr10
    130: fntnum0 current font is cmr10
    131: setchar68 h:=1310720+500623=1811343, hh:=115
    		[...]
    [a]
    190: pop
    level 1:(h=0,v=655360,w=0,x=0,y=0,z=0,hh=0,vv=42)
    191: down3 786432 v:=655360+786432=1441792, vv:=91
    195: push
    level 1:(h=0,v=1441792,w=0,x=0,y=0,z=0,hh=0,vv=91)
    		[...]
    223: setchar58 h:=6681040+182045=6863085, hh:=436
    [ und jetzt eine linie:]
    224: pop
    level 1:(h=0,v=1441792,w=0,x=0,y=0,z=0,hh=0,vv=91)
    225: down3 192967 v:=1441792+192967=1634759, vv:=103
    229: putrule height 65536, width 9323399 (5x591 pixels)
    238: pop
    level 0:(h=0,v=42152922,w=0,x=0,y=0,z=0,hh=0,vv=2670)
    239: down3 1572864 v:=42152922+1572864=43725786, vv:=2770
    243: push
    level 0:(h=0,v=43725786,w=0,x=0,y=0,z=0,hh=0,vv=2770)
    244: right4 15229091 h:=0+15229091=15229091, hh:=965
    249: setchar49 h:=15229091+327681=15556772, hh:=986
    [ 1]
    250: pop
    level 0:(h=0,v=43725786,w=0,x=0,y=0,z=0,hh=0,vv=2770)
    251: eop
    
    
    Bewertung
    Das Konzept von TeX ist auch für das GUT - Format ein vielversprechender Ansatz. Der schrittweise Aufbau immer größerer Objekte und ihre Abstände zueinander werden in einer ähnlichen Form auch im GUT - Format Verwendung finden.

    Rich Text Format RTF

    Geschichte

    RTF wurde von Microsoft als allgemeines Format zum Austauschen von Dokumenten definiert, daher wird es in Microsoft - Produkten auf breiter Front unterstützt. Beispielsweise ist es ab der Windows - Version 2.0 als Clipboard - Format eingesetzt, über das Windows - Programme untereinander Daten austauschen können.

    Außerdem unterstützen die Programme WORD für Macintosh und und WORD für PC den Textaustausch im RTF - Format. Grundlagen

    Die Spezifikation des Rich Text Format (RTF) ist eine Methode, formatierten Text und Graphiken für einen einfachen Transfer zwischen Applikationen zu kodieren.
    Die RTF - Spezifikation liefert ein Format für Text- und Graphikaustausch, das von verschiedenen Betriebssytemen, Betriebsumgebungen und Ausgabegeräten genutzt werden kann. Mit RTF können Dokumente, die unter verschiedenen Betriebssystemen und mit verschiedenen Software - Applikationen erstellt wurden, zwischen diesen Betriebssystemen und Applikationen ausgetauscht werden.

    Das RTF - Dokument besteht überwiegend aus Steuersequenzen zur Einstellung des RTF - Readers. Diese Steuersequenzen können entweder control words (Kontrollwörter) oder control symbols (Kontrollsymbole) sein. Zusätzlich dazu besteht die Möglichkeit, bestimmte Sequenzen durch Klammern zu Gruppen zusammenzufassen.

    Ein Kontrollwort ist ein formatiertes Kommando, welches von RTF verwendet wird, um Druckanweisungen oder Informationen zum Dokumentenumgang anzugeben. Es besteht aus einer mit einem Trennzeichen ( Delimiter) abgeschlossenen Sequenz einzelner Zeichen und hat die folgende Form:

    \LetterSequence<Delimiter>
    

    Der Schrägstrich (\) leitet immer ein Kontrollwort ein. Der Delimiter kann zum Beispiel ein Leerzeichen sein, oder eine Ziffer, oder ein Strich (-), wonach ein weiterer Delimiter folgt. Zur LetterSequenz bleibt anzumerken, daß RTF alle Zeichen von a bis z, bzw. von A bis Z verwenden kann, deutsche Umlaute sind hier nicht vorgesehen.

    Bei Kontrollsymbolen werden einzelne Buchstaben verwendet, die als Steuerzeichen dienen und durch einen Schrägstrich eingeleitet werden.

    \~ 
    

    Nur wenige Steuerzeichen sind jedoch bisher definiert, so daß der RTF - Reader unbekannte Steuerzeichen überliest.

    Eine Gruppe besteht aus Text und Kontrollwörtern oder Kontrollsymbolen, die in Klammern ({}) zusammengefaßt werden.
    In einer RTF - Datei können Gruppen sowohl für Fonts, Typen, Bildschirmfarbe, Bilder, Fußnoten, Anmerkungen, Header und Footer als auch für Dokument-, Abschnitts-, Absatz- und Buchstabenformatierung enthalten sein.

    Eine mögliche Definition für eine Schriftart könnte folgendermaßen aussehen ([75]):

    {\stylesheet{\s0\f3\fs20\qj Normal;}
    {\s1\f3\fs30\b\qc Heading Level 3;}
    

    Mit Hilfe von stylesheet werden Schriftarten eingestellt, die mit s0 bis sn durchnummeriert werden. Dem Schrifttyp s0 wird der Name Normal zugeordnet, mit dem Zeichensatz f3, in der Größe von 10 Punkt ( fs20). Mit qj wird die Schrift justiert ausgegeben. Die zweite Zeile des Beispiels definiert eine Schrift mit dem Namen Heading Level 3. Die Schrift ist 15 Punkt und wird fett und zentriert ausgegeben ( fs30, b und qc).

    Alle Fonts, Styles, Bemerkungen und Formatiermöglichkeiten, die vom Autor angegeben werden, müssen vor dem normalen Textanteil im Dokument stehen. Diese Gruppen werden der RTF Header genannt.
    Einige Kontrollwörter, auch destinations (Ziele) genannt, stehen zu Beginn einer Gruppe von abhängigem Text, der an einer anderen Stelle im Dokument stehen kann. Ein Beispiel hierfür ist die footnote - Gruppe.
    Der Reader eines RTF - Dokuments hat folgende Aufgaben:

    Kontrollinformationen können sehr einfach sein. Manche dieser Anweisungen fügen nur Sonderzeichen in den Fließtext ein, andere betreffen das ganze Dokument oder zumindest große Teile.

    Bewertung
    In einem RTF - Dokument ist die Layoutinformation zwar enthalten, ist aber innerhalb des Dokuments klar abgegrenzt, und zwar zu Beginn des Dokuments. Bei RTF wird aber auch dem Reader überlassen, wie das Dokument angezeigt wird, demnach ist eine Verwendung für das GUT - Format ausgeschlossen.

    Office Document Architecture (ODA) and Interchange Format

    Geschichte
    Bereits in den frühen achtziger Jahren wurde das Interesse an der Entwicklung von Normen zum Dokumentenaustausch groß. 1982 begann die ECMA (European Computer Manufacturers Association) an einer Norm zu arbeiten, die dann 1985 als ECMA - Norm 101 "Office Document Architecture" veröffentlicht wurde. Hier waren schon die wesentlichen Konzepte der späteren Normen enthalten.
    1989 wurde von der ISO (International Organization for Standardization) der Standard ISO8613 veröffentlicht, die internationale Norm "Office Document Architecture (ODA) and Interchange Format". Nahezu inhaltsgleich war die Recommendation des CCITT (Comité Consultatif International Télégraphic et Téléphonic), die schon 1988 herauskam.
    Das eigentliche Ziel dieser Arbeiten war es, den elektronischen Austausch von Dokumenten zu normieren. Wobei in diesem Fall hauptsächlich an Dokumente für den Bürobedarf gedachte wurde, also Briefe, Verträge, Rechnungen, usw.
    "Es soll sichergestellt sein, daß der Empfänger ein solches Dokument in der vom Absender beabsichtigten Form auf Papier oder auf einem Bildschirm wiedergeben, aber auch weiterverarbeiten kann, etwa in dem er Inhalt oder Aussehen ändert."[4]
    Grundlagen
    Eine der grundlegenden Ideen von ODA ist die Möglichkeit, Dokumente auf zweierlei Art und Weise anzusehen, nämlich unter logischen und unter Layout - Gesichtspunkten. Dies bedeutet, daß es einen logical view und einen layout view auf ein Dokument gibt.
    Beim layout view geht es darum, wie ein Dokument auf einem Darstellungsmedium, also Bildschirm oder Papier letztendlich aussieht. Dahingegen beschäftigt sich der logical view mit den logischen Strukturen, nach denen der Inhalt des Dokuments gegliedert ist.
    Diese beiden Strukturen, also die logical structure und die layout structure sind alternativ und formen gemeinsam die Basis der document architecture, wobei beide stets als Baumstruktur vorliegen.
    Der Wurzelknoten heißt also entweder document layout root oder document logical root, die Endknoten sind basic objects und alle anderen Knoten der Bäume werden als composite objects bezeichnet.
    Da bei meiner Arbeit das Layout im Vordergrund steht, soll im Folgenden auf die Layoutstruktur eingegangen werden.

    ODA - Layoutstruktur
    ODA kennt bezüglich der Layoutstruktur mehrere Typen von Objekten; neben der document layout root auch noch blocks, frames, pages und page sets.

    Ein block ist eine rechteckige Fläche, die einen Teil des eigentlichen Inhalts des Dokumentes, z.B. Text oder Graphik, enthält. Block ist ein basic layout object, ist folglich Endknoten der Baumstruktur und enthält keine untergeordneten Elemente.

    Ein frame ist wie der block einen rechteckige Fläche, die im Gegensatz zum block ein oder mehrere weitere frames oder ein odere mehrere weitere blocks beinhalten kann. (In einem frame können demnach nicht sowohl frames als auch blocks als nächste Baumebene enthalten sein.) Frame ist ein composite layout object, er hat untergeordenete Objekte.
    Beispielsweise könnte ein Briefkopf so dargestellt werden: [4]

    Briefkopf

    Eine page ist wiederum eine rechteckige Fläche, und entspricht einer Papierseite oder einer Bildschirmseite. Auch page ist ein composite layout object.
    Beispiel hierzu ist eine Briefseite: [4]

    ODA

    Ein page set besteht aus pages oder auch wieder aus page sets, wobei pages und page sets gleichzeitig auftreten können.

    Dokumentklassen
    Häufig weisen mehrere Dokumente eine ähnliche Struktur auf. Daher gibt es bei ODA das Konzept der document class.

    "Eine Dokumentklasse ist die Festlegung einer Menge von Regeln bezüglich der logischen Struktur und der Layoutstruktur für alle Dokumente, die zu dieser Dokumentklasse gehören."
    ([4]) Bewertung
    In der ODA - Layoutstruktur werden Seiten, ähnlich wie bei TeX, aus mehreren Objekten aufgebaut, die wiederum aus kleineren Objekten bestehen. Jedoch ist bei ODA das Layout viel zu starr und die Einteilung weitaus gröber. Nicht einzelne Buchstaben werden zusammengruppiert, sondern bereits ganze Textbestandteile. Darstellungen von Formeln und ähnlichem ist damit nicht möglich.

    PostScript

    Geschichte
    1982 wurde PostScript von der amerikanischen Firma Adobe Systems entwickelt. PostScript ist eine imperative Programmiersprache, die als geräteunabhängige Beschreibung von Druckseiten entwickelt wurde. Hierbei können die Druckseiten aus einer beliebigen Kombination von Text, Bildern und Graphiken bestehen.
    Bei PostScript wird die Ausgabe einer gedruckten Seite in zwei Schritten durchgeführt. Als erstes wird vom Anwendungsprogramm ein PostScriptprogramm erzeugt, in dem Format und Gestaltung des Dokuments beschrieben werden. Dieses Programm wird anschließend an das Ausgabegerät verschickt, wo das Programm interpretiert wird und dann in gerätespezifische Steuerbefehle zur Ausgabe des Dokuments umgesetzt wird. Durch die Trennung dieser zwei Schritte werden geräteunabhängiger Versand und Speicherung ermöglicht.

    Sprache
    Die PostScriptsprache enthält folgende Elemente, die beliebig miteinander kombiniert werden können.

    Meist besteht ein PostScriptprogramm aus zwei Teilen, dem Prolog und dem Skript. Im Prolog, dem Deklarationsteil, werden anwendungsspezifische Prozeduren und Objekte definiert. Im Skript, dem eigentlichen Hauptprogramm, werden dann unter Verwendung der Objekte aus dem Prolog der Aufbau der Dokumentseiten beschrieben.

    Ein PostScriptprogramm wird kellerorientiert verarbeitet, wobei der Kellerzugriff in Postfixnotation erfolgt. Es gibt vier verschiedene Keller, den Befehlskeller, den Ausführungskeller, das Wörterbuch und den Graphikkeller.

    Befehlskeller: Dieser Keller enthält neben den Operanden auch die Ergebnisse von Operationen, z.B. löscht eine n - stellige Operation die n obersten Elemente des Kellers, verwendet sie als ihre Argumente und schreibt das Ergebnis oben auf den Keller zurück.
    Ausführungskeller: In diesem Keller wird die korrekte Abfolge geschachtelter Prozeduren überwacht. Alle noch nicht abgearbeiteten Prozeduren sind hier enthalten.
    Wörterbuch: Hier finden sich alle Variablen, Prozeduren, usw., die im Lauf eines Programms deklariert worden sind. Jeder Eintrag besteht aus dem Schlüssel und der damit assoziierten Bedeutung.
    Graphikkeller: Das oberste Element dieses Kellers enthält jeweils die aktuellen Graphikkontrollparameter, wie z.B. den aktuellen Zeichensatz.

    Beispiel
    Beispiel einer Beschreibung in PostScript [5]:

    PostScript

    /Rechteck
    Deklaration einer Prozedur, die ein Rechteck mit den Seitenlängen 1 Punkt und 2 Punkt zeichnet (1 Punkt = 0.035 cm);
    { newpath
    Eröffnen eines PostScript - Pfades;
    0 0 moveto
    Zeichenstift in den Koordinatenursprung bewegen;
    0 1 lineto
    Linie zur Koordinate (0,1) zeichnen;
    2 1 lineto
    Linie zur Koordinate (2,1) zeichnen;
    2 0 lineto
    Linie zur Koordinate (2,0) zeichnen;
    closepath }
    Beenden des Pfades: von der aktuellen Position wird gleichzeitig eine Linie zum Anfangspunkt des Pfades gezeichnet;
    def
    Ablegen der Prozedur im Wörterbuch;
    gsave
    Speichern des aktuellen Graphikzustandes;
    28.35 28.35 scale
    Vergrößerung aller folgenden Anweisungen um das 28,35fache. Eine Einheit entspricht dann etwa 1 cm;
    Rechteck fill
    Zeichnung des Rechtecks und Färbung mit Schwarz. Wegen der Skalierung ist das Rechteck 1 x 2cm groß. Die linke untere Ecke befindet sich im Koordinatenursprung;
    3 4 translate
    Verschieben des Koordinatensystems um 3 cm nach rechts und um 4 cm nach oben;
    Rechteck stroke
    Erneutes Zeichnen des Rechtecks ohne Färbung, die linke untere Ecke befindet sich im Ursprung des verschobenen Koordinatensystems;
    grestore
    Der ursprüngliche Graphikzustand wird wiederhergestellt. Die zwischenzeitlichen Skalierungen und Koordinatentransformationen sind damit unwirksam.

    Bewertung
    PostScript wurde als geräteunabhängige Beschreibung von Druckseiten konzipiert. Eben diese Beschränkung auf Seiten ist für GUT nicht vorgesehen und ist ein Grund dafür, weshalb PostScript nicht als Vorlage für das Format dienen soll.

    Portable Document Format PDF

    Geschichte
    Das Portable Document Format wurde von der Firma Adobe [15] entwickelt, und basiert im wesentlichen auf dem PostScript - Format.
    Bei PostScript steht, wie bereits erläutert, eine hochwertige und systemunabhängige Druckausgabe im Vordergrund. PDF wurde von der Firma Adobe dann entwickelt, um den Dokumentenaustausch inklusive des Originallayouts zu ermöglichen.

    Grundlagen
    Das neue PDF - Format basiert auf der Funktionsweise von PostScript, ist jedoch um einige wichtige Funktionen erweitert worden.
    Folgende Erweiterungen wurden vorgenommen:

    Zusätzlich dazu wurde ein eigener Viewer für PDF entwickelt, der sogenannte Acrobat Reader , mit dem Dokumente angesehen und ausgedruckt werden können.
    PDF ermöglicht es dem Autor das Erscheinungs- und Druckbild seines Dokuments zu kontrollieren. Das jeweilige Erscheinungsbild wird dabei vom Viewer auf die gegebene Leistungsfähigkeit des Displays angepaßt.

    Allerdings ist ein PDF-File kein PostScript-Programm und kann nicht direkt von einem PostScript-Interpreter interpretiert werden. Jedoch können die Seitenbeschreibungen aus einem PDF-File in ein PostScript-Programm konvertiert werden.

    Sprache
    In einem PDF-File steht neben dem PDF-Dokument noch andere unterstützende Information. Die Texte und Graphiken werden nach dem Model der PostScript-Sprache verwendet, so wird auch bei PDF eine Seite dadurch erzeugt, daß paint auf selektierte Stellen auf der Seite plaziert wird.
    Jedoch wurde aus Gründen der Vereinfachung auf die Möglichkeit der Programmierbarkeit verzichtet, daher wird ein PDF-Programm in Maschinen-Code erzeugt. Das ist auch der Grund dafür, daß eine PDF-Seitenbeschreibung schneller gezeichnet werden kann als dies mit einem vergleichbaren PostScript-Programm möglich wäre.
    Das Zeichnen beliebiger Inhalte eines PDF-Dokuments wird immer in einem Koordinatensystem definiert, also sowohl Position, Orientierung, Graphiken als auch Textgröße und Bilder.

    Bewertung
    Als Erweiterung der PostScript-Sprache ist das PDF-Format sehr interessant und gelungen. Jedoch ist es für die Verwendung als Vorbild für GUT ebenso ungeeignet. Der einzige Punkt, der übernommen wird ist die Unprogrammierbarkeit, also das Erstellen eines PDF-Files in Maschinen- Code.


    zurueck home vorw