Ratgeber über PostScript Befehle – Teil I

Ratgeber über PostScript Befehle – Teil I
Copyright © 1996-2007 Physics Department, Emory University.
For original English text, go to: http://www.physics.emory.edu
Translated by M.Dmitrieva

Ein guter Artikel über PostScript durch Alan G. Isaac, kann hier heruntergeladen werden.

Reservekopie der Arbeit hier.

Das vertritt ein kurzes Tutorial über die einfachsten PostScript Befehle. Man kann entweder ein PostScript Datei von Hand mit Hilfe einem Texteditor ausführen, oder ein Programm zu schreiben, das PostScript Output ausführt.

Ersten Schritt – erste Zeile der Datei

Der Anfang der PostScript-Datei sollte angeben:

%!PS

Das berichtet dem Printer, was für es folgt ist PostScript, und keinen einfachen Text. HINWEIS: einige MS-DOS Programme, die PostScript Dateien vorlegen, werden ein Befehl-D Charakter vor %!PS Charakteren einfügen. Dies verursacht die gesamte Datei als Klartext von den meisten UNIX-basierten Druckern interpretiert zu werden. Ob es ein Problem beim Drucken einer geschaffenen Datei durch MS-DOS gibt, überprüfen Sie ob den Befehl-D Charakter befindet sich da, und wenn ja, entfernen Sie das. Die ERSTEN Charakteren den Drucker sieht, MÜSSEN %!PS sein.

Zweiten Schritt — skalieren die Seite um

Gewöhnlich PostScript verwendet Einheiten “Punkte” für das Angeben von Grafiken auf der Seite. Ich finde angenehmer mit Zentimeter zu arbeiten. Ich habe den folgenden PostScript Codeausschnitt von einer gemeinfreien Programm genannt “GLE” bekommt, und ist verfügbar auf jeder großen FTP-Site; Ich empfehle dies Grafik-Programm. Durch Beobachtung PostScript Output, habe ich die folgenden PostScript Codeabschnitte gesammelt:

matrix currentmatrix /originmat exch def
/umatrix {originmat matrix concatmatrix setmatrix} def
[28.3465 0 0 28.3465 10.5 100.0] umatrix

Hauptsächlich das skaliert die Seite um, sodass alle Befehle funktionieren werden, als ob der Zentimeter die grundlegende Längeneinheit vertritt. Das stellt (0,0) näher unten links und (21,24) oben rechts auf der Seite.

Ob Sie das nicht machen werden, dann (0,0) ist die linke untere Ecke auf der Seite und (612,792) ist die obere rechte Ecke auf der Seite (ob Sie ein Blatt von 8 ½ Zoll mit 11 Zoll verwenden). Diese sind Default PostScript Einheiten; 72 davon 1 Zoll. 28.3465 von 1 Zentimeter, damit die oben genannten Zahlen befinden sich in der letzten Zeile des PostScript-Codes.

Dritten Schritt — zeichen eine Linie

Wege auf der Seite bestehen aus mehreren Teilen. Erstens setzen Sie die Linienbreite. Zweitens bewegen Sie sich anfangs der Zeile; dann bewegen auf verschiedenen Punkten, Sie wollen die Linie darauf durchgezogen zu werden; dann setzen die Farblinie und schließlich bestellen dem PostScript die Linie zu zeichen.

Das generiert das Code folgenderweise auszusehen:

0.1 setlinewidth
2 2 newpath moveto
3 3 lineto
3 4 lineto
2 4 lineto
0 setgray
stroke

Das leistet das folgende Bild:

Die Befehle sind unmittelbar verständlich. Der “Schlag”-Befehl am Ende ist was eigentlich dem PostScript feststellt die Linie zu ziehen; ohne diesen Befehl wird PostScript nichts drucken. (Das wird später nützlich sein, ob Sie eine Form machen wollen und dann zu füllen, aber den Kontur zu zeichnen.) Der “0 setgray” Befehl gibt eine schwarze Linie an; für die weiße Linien verwenden “1 setgray”, und für die graue Linien verwenden eine Zahl zwischen 0 und 1.

Jeder Punkt wird mit dem vorherigen durch eine gerade Linie verbunden, so für gekrümmte Linien brauchen Sie viele Punkte auf der Linie festzulegen. Allgemein finde ich, dass die Angabe neuer Punkte alle 0,02 cm oder so ist völlig in Ordnung und wird ausgeglichenen Kurven erzeugen.

Ob Sie den letzten Punkt auf den ersten Punkt anhängen möchten, verwenden Sie den Befehl “closepath” am Ende der Zeile Beschreibung:

0.1 setlinewidth
2 2 newpath moveto
3 3 lineto
3 4 lineto
2 4 lineto
closepath
0 setgray
stroke

Vierten Schritt — beschließen die Datei

Ob Sie eine Zeile zeichnen, eigentlich gibt es keine Zeile in PostScript Mind bis wenn besitzen Sie einen “Kontur” Befehl. Ebenso wird die PostScript Seite nicht gedruckt, bis wenn Sie einen “Showpage” Befehl haben. Stellen Sie das am Ende der PostScript Datei.

So eine komplette PostScript Datei sieht folgenderweise aus:

%!PS

matrix currentmatrix /originmat exch def
/umatrix {originmat matrix concatmatrix setmatrix} def
[28.3465 0 0 28.3465 10.5 100.0] umatrix

0.1 setlinewidth
2 2 newpath moveto
3 3 lineto
3 4 lineto
2 4 lineto
closepath
0 setgray
stroke

showpage

Klicken hier ob Sie eine Kopie von PostScript Datei bekommen wollen.

 

Fünften Schritt — Zeichen viele Zeilen

Ob Sie viele Zeilen auf der Seite zeichnen wollen, nur wiederholen das oben beschriebenen Prozess. Der Befehl “newpath” berichtet dem PostScript Sie fangen eine neue Zeile an. Im Fall Sie nur “moveto” ohne “newpath” verwenden, dann er denkt, Sie zeichnen die gleiche Zeile, obwohl den nächsten Punkt auf der Linie nicht mit dem letzten verbunden ist. “moveto” – den Stift anziehen und es irgendwo sonst zu legen; “lineto” – die Bewegung den Stift, während es sich noch auf der Seite befindet. Ob Sie “newpath” nicht verwenden, dann können Sie ein einzelnen “Strich” Befehl verwenden, gleichzeitig die Linien auf der Seite zu zeichnen:

0.1 setlinewidth
2 2 newpath moveto
3 3 lineto
3 4 lineto
2 4 lineto
5 3 moveto
6 4 lineto
7 2 moveto
8 4 lineto
0 setgray
stroke

Gewöhnlich wollen Sie jede Zeile getrennt anfangen, deshalb verwenden jedesmal “newpath moveto” wenn Sie eine neu Linie beginnen. Das Zeichnen einfachen Zeilen ist das nicht so wichtig, aber die Folgen sind wichtiger bei der Abfüllung Polygons. Bemerken Sie sich den “Strich” Befehl hat dieselben Effekt als “newpath”; PostScript verwendet den Strich Linie zu zeichnen, und dann vergisst darüber.

Ob Sie alle Linien die gleiche Farbe sein wollen, man soll die Farbe anfangs der Datei angeben.

Sechsten Schritt — Komprimieren der Datei

Um Ihrer PostScript Datei kleiner zu machen, vielleicht wollen Sie ein oder zwei Letteraliasse für einige einfachen Befehlen schaffen. Beispielweise wollen Sie ein Bild von 300,000 kleinen geraden Linien leisten (habe auf einigen meiner Bilder angewandt), dann ist es leichter ein Letter-Befehl haben, anstatt “newpath moveto” 300,000 Mal wiederholen.

Oben auf der PostScript Datei, nach %!PS Zeile kann man einige einfachen Befehlen bestimmen. Linien zu zeichnen, braucht man die folgenden Befehle:

/m {newpath moveto} bind def
/l {lineto} bind def
/cp {closepath} bind def
/s {stroke} bind def
/sg {setgray} bind def

Das “bind def” definiert den Alias; die Phrase in {Klammern} ist die Definition und Alias selbst ist die Letter (s), die das / Symbol folgen. So, ob Sie “m” in der PostScript Datei verwenden, tatsächlich bedeutet das “newpath moveto”. Und die Endversion von PostScript Datei wird folgenderweise aussehen:

%!PS

/m {newpath moveto} bind def
/l {lineto} bind def
/cp {closepath} bind def
/s {stroke} bind def
/sg {setgray} bind def
matrix currentmatrix /originmat exch def
/umatrix {originmat matrix concatmatrix setmatrix} def
[28.3465 0 0 28.3465 10.5 100.0] umatrix

0.1 setlinewidth
2 2 m
3 3 l
3 4 l
2 4 l
cp
0 sg
s

showpage

Klicken hier ob Sie eine Kopie von PostScript Datei bekommen wollen.

 

Goldene Wörter

  • Wie viele gegenwärtige Computersprachen, für PostScript ist das nicht wichtig, was mit dem Leerraum geschieht (Leerzeichen, neuen Zeilen, Leerzeilen, Tabulatoren, etc.). Zeichnen wie Sie wollen.
  • Allgemein besteht keinen Grund dafür das Umskalieren der Seite nicht zu tun, jedesmal Sie eine neu PostScript Datei oder Alias machen.  Ich nur kopiere dieselbe Stück PostScript Befehl bei jedem geschriebenen C Programm, das PostScript Output erstellen muss.
  • Ob Sie ein Blick auf meinen Programmen werfen, dann können Sie etwas Zeug anfangs und ausgangs der Datei bemerken; dieses Zeug ist überflüssig und unnötig (und verursacht keine Probleme). So, wenn Sie sich mit einigen unterschiedlichen Beispielen in meinen Programm stoßen, keine Panic; Ich habe nichts aus der obigen Erklärung hinterlassen.
  • Technisch, glaube ich “Alias” sind tatsächlich “Prozedurdefinitionen” genannt.
  • Sie befinden sich in einer guten Form; Sie können viele Linien zeichnen! Ob Sie mehr darüber erfahren wollen, klicken unten auf “Mehrere PostScript Befehle” für mehr Informationen über einfachen PostScript Befehle: Farbverwendung, Zeichnen von Kreisen, Ausfüllen von gezeichneten Formen.

 

Mehrere PostScript Befehle

 

Links…

Aktuelle Adresse:

Eric R. Weeks
weeks@physics.emory.edu
Department of Physics
Emory University
Atlanta, GA 30322-2430