��������
��� --- ������ � ����� ������ �
PostScript. ������� ���� ���� --- �� �������
�������� ���� ������������ ���� ���������, � ����
��������, ����������� ��� ��������, ����������
PostScript ���������� � ������������� ������
���������� ����������. �� �� ���������� ���������
������������� ����������� �� ���� ����, � ������
���������� ����������� ����������� � �����������
���������� � PostScript.
�������� ����, ������� �� PostScript, ���� �������
�������� ��� ���� �����. ������ ��� John Gaffney
�� �������� Evans & Sutherland. ������� ��
��������� "Design System", � �����
�������������� ��������� Adobe Systems ��� ������
PostScript � �������� ������������ �� ��������� �
���������� ����������� ��� ������� �������. Adobe
Systems ���� ���������� � 1982 ���� Chuck Geschke
� John Warnock. C.Geschke � J.Warnock �������
����� ������ � ���������� �����, ������� ����� �
������� ����� ������ Doug Brotz, Billi Paxton � Ed
Taft.
������� �� �������� ����� �� ��������
������������ ���������� ����������, ���� � ��
������������ �������� ������������ ��������
�������������. ��� ����������� ��������� ��
�������� ������� ������, ������ �����������
������������� ������� ����������� � ������� �����
������� �����, ����������� ������������
�����������, ��������������� �� ���������
������������, ������ ���������� �� ���������
"What You See Is What You Get". �� �����
���� ������ WYSIWYG ��������� ���������� �����
������� PostScript ��� ��������� ����� ����������
��� ��� �������������� � ������� ��������,
��������, �������. � ���� ������ �� ��� ���
������������ ��� ������ �������� ������
�������������� �����, ��������� � ��������,
������, ���������� �����������, �������������,
�������������� � ���������, ���� ���� �� � ��
������� � ������. � ������ �������, ���� ��
������ ������� ��� ��������� ��� ����������������
�� PostScript, �� ������� ��� ���������.
������� PostScript �����������
����������������. ����� ��� ��� ���� ������
��������� ���������, �������� ����������������
����� Internet. ��� ����������
"ghostscript", ��������� �� �����
Aladdin Enterprise. � ��� ���������� �����������
��������� ������������ ��� �� �����,
"ghostview". ������ GNU �������� �����
���� ������ ghostscript. ��� �������� �� ����
���������� Linux, � ��� ������������ Linux
�������� �� � ������� ��������. ����� �� �����
����� ���� � ghostscript � ��� ����������, ����
������� �������� ����� ���� ��������� �� ������
���������������.
�����������, �� �������������� ������ X Window
� ������� ���� xterm. ���� �� ����� ������������
ghostscript, �� ������ ������� ��� ������ ������
������ �� �����������, ������� ���������� �����
������������� ������� ghostscript
Initializing... done. Ghostscript 2.6.2 (4/19/95) Copyright (C)
1990-1995 Aladdin Enterprises, Menlo Park, CA. All rights reserved. Ghostscript
comes with NO WARRANTY: see the file COPYING for details.
GS>
������������ � ���������� �����������
����������� ������ ����.
����� ������� ������ ghostscript, ������
������� ����� ����������� GS> �������
quit. EOF (Ctrl-D) ���� ����� �������� �
���� ��������.
Ghostscript ����� ����� ��������� �������,
����� �� �� �����. � ��������� ������� ��
��������� ���� �� ����� sample.ps. ���
�������, ������� ����� ��������� ghostscript,
�������� � ���� �����. ������� �� ��������
���������� ����� ����� PostScript-����������. ���
���������� ���� ��������� ��� ��������� �� ������
����� ��������������� ��������� ghostscript, ����
�� �������� ��������� �������
gs sample.ps
� ���������� �� ����� ���������� (����,
�������, ��������� ������� �����-��
�����������. �� ����� ���� PostScript �����
�������������� � ��� ������ �����, ��������,
�������������� ����������, �������� �� ������ �
�.�. �� ��������� � ��� � ������� ������� ����
�����) � ���� ghostscript. ���� ��������� �������
�����, ��� ���� ��������, �� ���� ghostscript
���������� ������ �������� � ������� �����������
showpage, ������ ������ �������
Enter ��� ������ ��������� ��������.
PostScript ���������� �������� ��������
�������. ����� �������, ��������� ������� ������
����� ��������. ������� �����������
���������. PostScript ���������� ���������
���������� ��� ��������� ������ � ����������
������. ��� ������ PostScript ���� ������ �����:
���� ���������, ���� ��������, ���� ���������� �
���� ��������� �������. ���� ��������� ��������
����� ������� PostScript, ���������� ���������� �
������������ ���������� ����������. ����������,
��������, �������������� ��������:
20 30 add 10 sub
���� 40, ��� ��� 20 30 add ���� 50 �
sub ���� 40, ������� 50 �
10. mul (���������) � div
(�������) �������� ����� �� �������. ���
= ������������� � ����������, �������
����������� ���� ������ �� ����� ��������� �
���������� � ����������� ���� ������ ���������
������������� ��� �������� � �������� �����
������. == ��������� ����������, ��
������� �������������� ������������� ������
��������. ������� pop ������� �������
������� ����� ���������. �� ���������� ���� �����
�������� � ����������� ������� ���� �����.
��� ������������
PostScript ��� ���������?
���������� ������� �������������� ���������
��������, �� ������� �� ������. ���������� �����
�� �������� PostScript �������� � ����������
��������, ������ ����� ��������� ������
�����. ����� ������ ���� ������������� ��������
������������� ����������� (0,0), �������������� �
������������ ������� �������� ����� 612 � 792,
��������������. ��� ������� ������������� �������
������ letter. ����� ���������� ������� ������
�������:
note: 540 �� 720, ���
legal: 612 �� 1008, ���
a4: 595 �� 842.
��� --- ������� ������� gs. �������
a4 ������ ������ ������ ����� �� A4,
��������.
����������� ������� �������� ��������� � �����
������������� �� ����� gs_statd.ps. ��
��������� � �������� /usr/lib/ghostscript
(��� Slackware). �� ������ ���������� �����
������������� ������� ������ ������������ �
������������� ����� �����. ����� �� ��������, ���
�� ����������� ������ �� ���������
letter.
��������� ��� ����� ������ �������
������ --- ��������� ������ � ������
�������. ��� �������� ��� ������ �������
x y moveto
��� x � y ����������
�������������� � ������������ ���������� �������,
��������������. x � y ��������
������� � ���������� � ���������� ��������. ���
������, �������������� ��������� PostScript ������
���������� �� ��������� ������ ������
����������������, �����, ��� C ���
FORTRAN. moveto --- �������,
���������� ������ � ����� � ������������
(x,y).
��������� PostScript ���������� ����, ���������
������� ��������������� �������� �� ����. �����
������ �������. ��� ������� �� ����� ����������
��� �������� � �������� �����
����������. ��������� ����� ���������� �� ����,
� �������� �������� ��, ��� ������ � �������
���� C, ������� �� �������� �� ����
���������������. � ���������� ������, ��� ������
�������, ��������� ����������, �������� ����� ��
����������.
������ �� ������ � ��������� �����. ������ �
��������: � �������. ���, ��� �����, ����� ���
����������, --- ��������� ��������� �������:
xx yy lineto
��� xx � yy ��������
��������� ����� �������. ��� ������ ---
������� ��������� �������, x �
y. ��� ��� ��� ������� ������������
������� �� ����� (x,y) �� �����
(xx,yy). ����� �� ������������� ��������
���������, ����� ��������� ��� ������� �����������
������� newpath � stroke.
������ ������� PostScript ��������� ���
��������� ��������������. ��� ����� �������,
��������� ��� ��������� ������. ���������, �������
������� � ���� sample1.ps, �����
��������� ���:
newpath
100 100 moveto
300 100 lineto
300 250 lineto
100 250 lineto
100 100 lineto
stroke
���� �� �������� ������ ������� �� ���������
�������, ��� �� ����� ���� �� �����������. ��
����� �������� �� �� ����� �������, �������� �����
��������� �������, ��� ��� ����������� ����.
PostScript, ��� � ������ �����
����������������, ����� �������� ��� �������
������������. ���, ��� ������� � ������ ��
�������� ��������, ��������������� ���������������
��� �����������.
newpath
% ������������� �������
100 100 moveto
% ��������� ��������������
300 100 lineto
300 250 lineto
100 250 lineto
100 100 lineto
stroke
������ �� ����� ��������� � ���� xterm �������
gs sample1.ps, � �������� ������� ����
ghostscript, � ������� ����� ��������� ��������
�������������. ����� ����������� GS> ��
�� ����� ������ ������� (sample1.ps) run.
������� stroke ���������
�������������� ���������� ������. ���
��������������� ��������� � ���� ghostscript ���
���� �������� ������������� �������� 200 �� 150
��������.
������ �� ������� ���� ������������� ���
���������������. �� ����� ������������ � �����
�����������.
��������� ���������, ��� �� �������, �������
�����������. �� ������ ��������� ����� ������,
��������� �� ��������, ��� ������ ������
moveto � lineto.
���� ��� ��� �������, ������� ���
��������������� ��������: rmoveto �
rlineto. ��� ��������� �� ��� ���������
� ������������ ���:
x y rmoveto
x y rlineto
��� x � y ������
�������������� � ������������ ���������� �����
��������� � �������� ������ ������ ��������. 'r' �
rmoveto � rlineto ��������
relative (�������������). ����� �������, ������
������� ���������� ������ �� x ������
������ � �� y ������ ����� �� ���
�������� ���������. ������ ������� ��������
����������, ������ ��� � ������ �������, � ��
������ ���������� ������.
��� ������������� ������� ���������� ���
��������� �������� ������� �����, ������ ��
��������� ������ �������. ������, ������������
����� ������ ������� � ����� ����� ���������. ���
�������� ��������
x setlinewidth
��� x ������ ������� ����� �
��������. �������� ���� ������� ������������ ��
���������� ��������� ������� �����.
����������, ��������� �� PostScript ��
���������� ����������� ��������. ����� ��������
���� ����������. ��� ����� ���� �������
x y r a b arc
��� x, y, r, a � b ������
�������������� � ������������ ���������� ������
����, ������ ���� � ���� ����� �������������
������������ �������������� ��� � ������ �� ������
� ������ � ����� ����, ��������������. ����
���������� ������ ������� �������. ���� ���������
����� ���� �� ��������� � ���������� �������, ��
�� ������� �� ��� �������� �������. ��� ����������
������� ���������� �� ��������� ������ ���������
���������:
3 setlinewidth
200 200 moveto
100 200 100 0 75 arc
stroke
300 300 moveto
400 500 200 20 50 arc
stroke
������� ��� ����� ���� ������������� � ��������
������ � ������ ����, ���� �� ����� ��������
��������������� �������. ������, ���� � ������
������ �������� ����� �������. ����� ���������
PostScript ������ ������� ��������� �������. �
������ ������ ������� �������� ��������� � �������
���. ����� ������ ������� ��������� �������� �����
������� ���������� �������. ���� �� ��������
������� newpath, �� PostScript ��������
��������� ������� � �������, ��� ���������
�������� ������. ����� �������, � ����������
��������� ����� ������� ����� �������� ������ ��
������� newpath. ��� ���� �����
��������� ����� ��� ��, �� ��� ������� �������.
������ ���������� ����������
newpath. �� �������������� �������
������. ����� �� �������������� �����������
������, ����������� �������� � �������� �������.
������� arc ����� ������������ ���
��������� ������ ����������. ��� ����� ����������
��������� � �������� ���� ���� ������ ��� 0 � 360,
��������������. arc ����� �����
��������� �������� �������. ��� ����� �����
��������� � �������������� ���������
PostScript. ������������ ����� ��������� ������
������� �� �������������� � ������������ ����
��������
x y scale
��� x � y ������,
��������������, ������������ ��������������� ��
����������� � ���������. ���� ��� ����� 1,
�������� ������� ������� �� �����. ��������
������� ����������� �� ��������� �������
scale. ��������� ������� scale
�� ������� �������� ����������, � �������������
� ���. ���� ������ ������� ������ ������������
��������������� x1, y1, �
������ --- x2, y2, �� �����
���������� ������ ������� ������������ ������
����� x1*x2, y1*y2. ��� ��� ����� ��
��������, ����� �� �������� �������������
�������� �� �������. PostScript �� ���������
�������, ��� ��������������� ���. ���������
���������, ������� ������� � ����
sample4.ps, �������� ������ ���
���������� ���������������.
3 setlinewidth
200 200 100 0 360 arc
stroke
newpath
2 1 scale
200 300 50 0 360 arc
stroke
newpath
1 4 scale
100 150 40 0 360 arc
stroke
��� ����� ��������, ��������������� ������ ��
��� �������, ������� ������� �����. �������
������� �������� �������� � ���������� ���������
������.
PostScript �������� ��� ��� ������� ���
��������� ���. ���� �� ���, arcn,
���������� �� arc ������ ������������
���������: ��� ������ ���� �� �������
�������. ������ ������� ������ ���� ����������,
���������� ����������� � ���� ������ ������. ���
�������� ���:
x1 y1 x2 y2 r arcto xt1 yt1 xt2 yt2
��� xt1, yt1, xt2, yt2 ������
�������������� � ������������ ���������� ����, �
����� ����������� �������� ����� ����������
x0, y0, x1, y1 � x1, y1, x2,
y2. r ������ ������ ����. ����
������ �� ����� � ������� ����� �� ��������� �
������� ����, �� � ������� ����������� �������
�� ������� ����� �� ������ ����. � �����
��������� ������� ���������� ����� (xt2,
yt2).
� PostScript ���� ����� ������� ���������
������ �����, ������� ����� ������������ ���
������������ ��� ������������� ������
������. ��� --- ������� curveto,
������� ������������ ���:
x1 y1 x2 y2 x3 y3 curveto
��� ������ ���������� � ������� �����,
���������� ������� ����������� �� (x0,
y0). ������ � ��������� ����� ��������
����������� � ������� ����� (x0, y0) �
(x1, y1). ������������� ��� � �����
(x3, y3) � �������� ������� �� (x2,
y2) �� (x3, y3). �� ���������
���������, ��� ��� ������ ����� �������� �
���������� ����� ������.
�����
PostScript ����� ��������� ������, ����������
������������ ��� DTP. ���� ����� �������� ��������
�������, ��������� ����� ����������� �������� ��
�����, ��� �������� ������. ���������� ���������
���������.
/Times-Roman findfont
15 scalefont
setfont
100 500 moveto
(I love PostScript!) show
/Times-Italic findfont
20 scalefont
setfont
100 450 moveto
(I love PostScript!) show
/Times-Bold findfont
25 scalefont
setfont
100 400 moveto
(I love PostScript!) show
/Helvetica findfont
30 scalefont
setfont
100 350 moveto
(I love PostScript!) show
/Courier findfont
35 scalefont
setfont
100 300 moveto
(I love PostScript!) show
/Helvetica-Bold findfont
40 scalefont
setfont
100 250 moveto
(I love PostScript!) show
showpage
��� ����� ������ �� ���������, �������
findfont ������������ ��� ���������
������� � ��������� ��������� ������. ��� ������
���������� � ������� '/', � �������� � ��������
��������� ������� ('/' ��������� ��������������
�������� ��� �������� �� ���� "��� ����"). �����
�� �������� � ������������ �������� ��������, �
��� ������ ����� �����. ����� ������ ������ ��
�������������� ��������
scalefont. ����������� ���������������
�������� ����� ���� ��������. �����
��������������� ������, ������� setfont
������ ����� ������� � ������������� �
���������. ����� ��������� ������� ��������
moveto � ���������������� �����������,
������� show ������ ����� ��� ������ �
���� ���������, ������������ � �������
������. ������� showpage ���������
����� �����������. ����������� ���������
���������� ������ ������� ���� � ������� ���
������ ������ � ���� �� ������ � ������ ������
��������. ��������� ��������� PostScript �������
������ ����� �����, ����������� � ��������
������� ������ Linux. ����� ����� �����������
����� ������ ��� ������, ��� ���, � ��������,
�������� ��������� ����� ������ ������� �����.
����
���� PostScript �������� ��������� ��������
��������� ����� ��� �������� �������
��������. ������ � ���������� � �������� �����
�����. PostScript �� ��������� ���������� ������
����. ������� ����� ���� ���������� �������� ���
�����-�����. ��� ��������� ����� � PostScript
����� ������������ ����� ������� ���������. ������
���������� �� ������� ����� RGB. � ���� �������
������ ���� ������������ �� ���� �������� ������:
��������, �������� � ������. ���������� �����
�������� ���������� ���������� �������������,
������������ �������� ����� 0 � 256. ��������
������������� ����� ���� ������� ������, �������
�� ���� ������ ����� �������, ��������,
111.223. ����� �������, ������� �������� ���:
x y z setrgbcolor
��� x,y � z �������� ����������
������������� ��� �������, ������� � �����
���������, � setrgbcolor ---
�������. ����� �������, 1 0 0 setrgbcolor
������� ������� ����, � 0 1 0
setrgbcolor --- �������. ������
������������� ������, ����� ��� ���������
������������� ����� 1. ������� ��������� �����
������ �� ��� ������� ��������� �� ��������� �����
�����. ��� ���� ������ ��������� ����������, �
�������� ����������� �����. ��������� ���������
�����, �� ����� ��������� ����������� �������
�������.
������ �������� ��������� ����� ���������� ��
������������������� ������� �����. �� ����������
�������� CMYK. ������ ������� ����� ---
�������, ���������, ������ � ������. ������
�������� ���������� ������ �� ���� � ������������
� ���������� �������������, ������������ �� 0 ��
1. ����� �������, ��������������� ������� ��������
���:
w x y z setcmykcolor
��� w, x, y, z --- ��������
������������� �������, ���������, ������ � ������
���������, ��������������. ��� ������� �����
���������� ����������� �� ��������� ����� �����,
����� ���� ��������� ��������� ���������. ���
������� ����������� �� ����� ������� ���� �������
� PostScript ���������.
������ ������� �������� ���:
x y z sethsbcolor
��� x, y, z �������� �������������
���� ������� �����. ������ ������������� �������,
������������� ��������� ����� � �������. ������
������������� ������������, � ������ ---
������� �����. ��������, �� �������� �
������������� ������ HSB
(hue-saturation-brightness,
����-������������-�������), ����� �����������
���������� � ���������� xfig.
����� ������ ������� ������������� �
PostScript --- fill �
closepath. ��������� ������, �������
�������������� ���������� � ����
sample6.ps, �������� ������ ��������
��������� � ������������� � PostScript.
1 1 0 0 setcmykcolor
100 100 moveto
300 100 lineto
300 250 lineto
100 250 lineto
100 100 lineto
stroke
1 0.5 0.8 0 setcmykcolor
5 setlinewidth
200 200 moveto
400 300 lineto
300 300 lineto
closepath fill
stroke
1 0 0 setrgbcolor
3 setlinewidth
200 200 moveto
100 200 100 0 75 arc
stroke
newpath
400 500 200 20 50 arc
stroke
0 0 1 0.2 setcmykcolor
3 setlinewidth
200 200 100 0 360 arc
stroke
1 0 0 setrgbcolor
newpath
2 1 scale
200 300 50 0 360 arc
gsave fill grestore stroke
stroke
0 1 0 setrgbcolor
newpath
1 4 scale
100 150 40 0 360 arc
gsave fill grestore stroke
����� closepath ��������� ��������
������, �������� �������� ����� ��������, �
������� fill ������ ��� �������
������������ ��������� �������
������������� ������.
PostScript ����� ����� ������������ �������
������. ��� �������� ��������
x setgray
��� x ������ ������������� ������, ���
�������� ����� �������� �� 0, ����������������
�������, �� 1, ���������������� ������. ���������
���������, ������� ������� ��� ������
sample7.ps, �� ������� ���������.
0.2 setgray
10 setlinewidth
100 700 moveto
200 0 rlineto
stroke
newpath
0.3 setgray
100 600 moveto
200 0 rlineto
stroke
newpath
0.4 setgray
100 500 moveto
200 0 rlineto
stroke
newpath
0.5 setgray
100 400 moveto
200 0 rlineto
stroke
newpath
0.6 setgray
100 300 moveto
200 0 rlineto
stroke
newpath
0.7 setgray
100 200 moveto
200 0 rlineto
stroke
newpath
0.8 setgray
100 100 moveto
200 0 rlineto
stroke
������, ��� ��������� ���� �����, ��
������������� ���������, � ����������� ����������
� PostScript, ��������� ������ ����� ������� �
���������� ���������. ��������� ������ ���� �����
��������� ����� �������� � ����� PostScript. ���
������� � ������������ � ��������� ����� ���������
�������.
����� ����������� Oliver Thilmann �� ��� ������
�������� ����������� �� ����������� �
������������� ���� ������.
|