Programowanie w PostScripcie
Podstawowe struktury maszyny PostScriptowej
Przykład struktury pliku PS
%!PS-Adobe-3.0
%%Title: Przyklad
%%Creator: M. Michalski
%%CreationDate: 10/29/99 11:44:54
%%Pages: (atend)
%%PageOrder: Special
%%DocumentNeededFonts: (atend)
%%EndComments
%%BeginDefaults
%%ViewingOrientation: 1 0 0 1
%%EndDefaults
%%BeginProlog
...
% definicje globalne itp.
%%EndProlog
%%Page 1 1
%%BeginPageSetup
...
% ustawienia dot. biezacej strony
%%EndPageSetup
...
...
% instrukcje PostScriptu
...
%%Trailer
% informacje o uzywanych fontach,
%%DocumentNeededFonts: Times-Bold % calkowitej liczbie stron itp.
%%Pages: 1
% (p. wyzej "attend")
%%EOF
Przykłady prostych programów w PostScripcie
%!PS-Adobe-3.0
% Kwadrat i półkole
/cm {29.39 mul} def
% zamiana cm -> punkty
newpath
% zacznij nową ścieżkę
8 cm 6 cm 3 cm 0 180 arc % wytyczanie pólkola
closepath
% zamykanie ścieżki (cięciwa)
0.65 setgray
% ustawienie koloru wypełnienia
fill
% wypełnianie ścieżki tuszem
0 setgray
% powrót do czarnego koloru
newpath
%
4 cm 4 cm moveto
% przenieś się do pktu (4cm, 4cm)
8 cm 4 cm lineto
% dolny bok
8 cm 8 cm lineto
% prawy ...
4 cm 8 cm lineto
% górny ...
closepath
% domknięcie ścieżki
stroke
% pokrywanie ścieżki tuszem
showpage
% drukowanie
%%EOF
%!PS-Adobe-3.0
% Szare półkole z czarnym konturem
/cm {29.39 mul} def
% zamiana cm -> punkty
newpath
% zacznij nową ścieżkę
8 cm 6 cm 3 cm 0 180 arc % wytyczanie pólkola
closepath
% zamykanie ścieżki (cięciwa)
gsave
% przechowaj ścieżkę i inne parametry
0.65 setgray
% ustawienie koloru wypełnienia
fill
% wypełnianie - usuwa ścieżkę
grestore
% odtworzenie scieżki, koloru tuszu itp.
0.1 cm setlinewidth
% wybieramy grubość obwiedni
stroke
% rysowanie - także usuwa bieżącą ścieżkę
showpage
% drukowanie
%%EOF
%!PS-Adobe-3.0
% Przykład użycia rotacji - "słoneczko" z 36 linii
0 10 360 {
% Pętla od 0 do 360 co 10 stopni
newpath
% Nowa ścieżka
gsave
% Zapamiętujemy stan układu przed obrotem
144 144 moveto
% Środek obrotu
rotate
% Obrót o kąt umieszczony na stosie przez pętlę
72 0 rlineto
% Wytyczanie odcinka w obróconym układzie
stroke
% Kreślenie
grestore
% Wracamy do układu nieobróconego
} for
% Pętla "for"
showpage
%%EOF