home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Best of the Best
/
_.img
/
01145
/
env1.exe
/
EVP_PS.PS
< prev
next >
Wrap
Text File
|
1992-09-16
|
27KB
|
1,000 lines
%%DocumentFonts: (atend)
%%Creator: EnVision Publisher
%%EndComments
% Copyright (C) 1989-92 M. K. Fleming. All Rights Reserved.
% Portions Copyright (c) 1992 Software Vision Corporation. All Rights Reserved.
% -------------------------- VARIABLE LIST --------------------------------
%
% PERMANENT DEFINITIONS:
% StdLine 1-unit line width in decipoints
% MonoColors Color definitions for 'mono' option
% GrayColors Color definitions for 'gray' option
% ColorColors Color definitions for 'color' option
% ColorOptions Indexable lookup table of color choices
% ColorMode 0=mono,1=gray,2=color
%
%
% CURRENT STATUS INFO:
% CurFont current font
% TxtDir text direction (0=horizontal, 1=vertical)
% TxtHt text height
% FillColor filling color
% DrawColor drawing color
% FillStyle fill pattern id
% LineWidth line width (as multiple of StdLine)
% LineStyle line pattern
% ColorTable color array (set to Mono, Gray, or Color)
% UserPat user-defined fill pattern
% ptm pattern matrix
%
%
% TEMPORARY, WORKING VALUES:
% x1,y1,x2,y2 rectangle coordinates
% top,dep,ydep,h,w 3-D bar values
% px1,py1,py2,pw,PatChar pattern fill data
% savematrix temporary storage
%
% -------------------------------------------------------------------------
/GrafDrivDict 100 dict def
/ReEncodeDict 12 dict def
GrafDrivDict begin
% ---------------------- PERMANENT DEFINITIONS ----------------------------
/StdLine 1 def % Normal line width, in decipoints
/Thick 8 def % Thick line width, as multiple of StdLine
/GrayColors
[
0.00
0.025
0.05
0.1
0.15
0.2
0.25
0.3
0.4
0.5
0.6
0.7
0.75
0.80
0.9
1.00
] def
/MonoColors
[ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] def
/ColorColors
[
[1 1 1] % white
[0 0 1] % blue
[0 1 0] % green
[0 1 1] % cyan
[1 0 0] % red
[1 0 1] % magenta
[0.67 0.33 0] % brown
[0.75 0.75 0.75] % lightgray
[0.2 0.2 0.2] % darkgray
[0.33 0.33 1] % lightblue
[0.33 1 0.33] % lightgreen
[0.33 1 1] % lightcyan
[1 0.33 0.33] % lightred
[1 0.33 1] % lightmagenta
[1 1 0.33] % yellow
[0 0 0] % black
] def
/Color256
[
[ 1 1 1 ] % background color-- should be white=1,1,1
[ 0.07 0.07 0.07 ]
[ 0.14 0.14 0.14 ]
[ 0.21 0.21 0.21 ]
[ 0.28 0.28 0.28 ]
[ 0.35 0.35 0.35 ]
[ 0.42 0.42 0.42 ]
[ 0.50 0.50 0.50 ]
[ 0.57 0.57 0.57 ]
[ 0.64 0.64 0.64 ]
[ 0.71 0.71 0.71 ]
[ 0.78 0.78 0.78 ]
[ 0.85 0.85 0.85 ]
[ 0.93 0.93 0.93 ]
[ 1 1 1 ]
[ 0.12 0 0 ]
[ 0.25 0 0 ]
[ 0.37 0 0 ]
[ 0.50 0 0 ]
[ 0.62 0 0 ]
[ 0.75 0 0 ]
[ 0.87 0 0 ]
[ 1 0 0 ]
[ 1 0.12 0.12 ]
[ 1 0.25 0.25 ]
[ 1 0.37 0.37 ]
[ 1 0.50 0.50 ]
[ 1 0.62 0.62 ]
[ 1 0.75 0.75 ]
[ 1 0.87 0.87 ]
[ 0.12 0.04 0 ]
[ 0.25 0.08 0 ]
[ 0.37 0.12 0 ]
[ 0.50 0.16 0 ]
[ 0.62 0.20 0 ]
[ 0.75 0.24 0 ]
[ 0.87 0.29 0 ]
[ 1 0.33 0 ]
[ 1 0.41 0.12 ]
[ 1 0.49 0.25 ]
[ 1 0.58 0.37 ]
[ 1 0.66 0.50 ]
[ 1 0.75 0.62 ]
[ 1 0.83 0.75 ]
[ 1 0.91 0.87 ]
[ 0.12 0.08 0 ]
[ 0.25 0.16 0 ]
[ 0.37 0.25 0 ]
[ 0.50 0.33 0 ]
[ 0.62 0.42 0 ]
[ 0.75 0.50 0 ]
[ 0.87 0.58 0 ]
[ 1 0.67 0 ]
[ 1 0.71 0.12 ]
[ 1 0.75 0.25 ]
[ 1 0.79 0.37 ]
[ 1 0.83 0.50 ]
[ 1 0.87 0.62 ]
[ 1 0.91 0.75 ]
[ 1 0.95 0.87 ]
[ 0.12 0.12 0 ]
[ 0.25 0.25 0 ]
[ 0.37 0.37 0 ]
[ 0.50 0.50 0 ]
[ 0.62 0.62 0 ]
[ 0.75 0.75 0 ]
[ 0.87 0.87 0 ]
[ 1 1 0 ]
[ 1 1 0.12 ]
[ 1 1 0.25 ]
[ 1 1 0.37 ]
[ 1 1 0.50 ]
[ 1 1 0.62 ]
[ 1 1 0.75 ]
[ 1 1 0.87 ]
[ 0.08 0.12 0 ]
[ 0.16 0.25 0 ]
[ 0.25 0.37 0 ]
[ 0.33 0.50 0 ]
[ 0.42 0.62 0 ]
[ 0.50 0.75 0 ]
[ 0.58 0.87 0 ]
[ 0.67 1 0 ]
[ 0.71 1 0.12 ]
[ 0.75 1 0.25 ]
[ 0.79 1 0.37 ]
[ 0.83 1 0.50 ]
[ 0.87 1 0.62 ]
[ 0.91 1 0.75 ]
[ 0.95 1 0.87 ]
[ 0.04 0.12 0 ]
[ 0.08 0.25 0 ]
[ 0.12 0.37 0 ]
[ 0.16 0.50 0 ]
[ 0.20 0.62 0 ]
[ 0.24 0.75 0 ]
[ 0.29 0.87 0 ]
[ 0.33 1 0 ]
[ 0.41 1 0.12 ]
[ 0.49 1 0.25 ]
[ 0.58 1 0.37 ]
[ 0.66 1 0.50 ]
[ 0.75 1 0.62 ]
[ 0.83 1 0.75 ]
[ 0.91 1 0.87 ]
[ 0 0.12 0 ]
[ 0 0.25 0 ]
[ 0 0.37 0 ]
[ 0 0.50 0 ]
[ 0 0.62 0 ]
[ 0 0.75 0 ]
[ 0 0.87 0 ]
[ 0 1 0 ]
[ 0.12 1 0.12 ]
[ 0.25 1 0.25 ]
[ 0.37 1 0.37 ]
[ 0.50 1 0.50 ]
[ 0.62 1 0.62 ]
[ 0.75 1 0.75 ]
[ 0.87 1 0.87 ]
[ 0 0.12 0.04 ]
[ 0 0.25 0.08 ]
[ 0 0.37 0.12 ]
[ 0 0.50 0.16 ]
[ 0 0.62 0.20 ]
[ 0 0.75 0.24 ]
[ 0 0.87 0.29 ]
[ 0 1 0.33 ]
[ 0.12 1 0.41 ]
[ 0.25 1 0.49 ]
[ 0.37 1 0.58 ]
[ 0.50 1 0.66 ]
[ 0.62 1 0.75 ]
[ 0.75 1 0.83 ]
[ 0.87 1 0.91 ]
[ 0 0.12 0.08 ]
[ 0 0.25 0.16 ]
[ 0 0.37 0.25 ]
[ 0 0.50 0.33 ]
[ 0 0.62 0.42 ]
[ 0 0.75 0.50 ]
[ 0 0.87 0.58 ]
[ 0 1 0.67 ]
[ 0.12 1 0.71 ]
[ 0.25 1 0.75 ]
[ 0.37 1 0.79 ]
[ 0.50 1 0.83 ]
[ 0.62 1 0.87 ]
[ 0.75 1 0.91 ]
[ 0.87 1 0.95 ]
[ 0 0.12 0.12 ]
[ 0 0.25 0.25 ]
[ 0 0.37 0.37 ]
[ 0 0.50 0.50 ]
[ 0 0.62 0.62 ]
[ 0 0.75 0.75 ]
[ 0 0.87 0.87 ]
[ 0 1 1 ]
[ 0.12 1 1 ]
[ 0.25 1 1 ]
[ 0.37 1 1 ]
[ 0.50 1 1 ]
[ 0.62 1 1 ]
[ 0.75 1 1 ]
[ 0.87 1 1 ]
[ 0 0.08 0.12 ]
[ 0 0.16 0.25 ]
[ 0 0.25 0.37 ]
[ 0 0.33 0.50 ]
[ 0 0.42 0.62 ]
[ 0 0.50 0.75 ]
[ 0 0.58 0.87 ]
[ 0 0.67 1 ]
[ 0.12 0.71 1 ]
[ 0.25 0.75 1 ]
[ 0.37 0.79 1 ]
[ 0.50 0.83 1 ]
[ 0.62 0.87 1 ]
[ 0.75 0.91 1 ]
[ 0.87 0.95 1 ]
[ 0 0.04 0.12 ]
[ 0 0.08 0.25 ]
[ 0 0.12 0.37 ]
[ 0 0.16 0.50 ]
[ 0 0.20 0.62 ]
[ 0 0.24 0.75 ]
[ 0 0.29 0.87 ]
[ 0 0.33 1 ]
[ 0.12 0.41 1 ]
[ 0.25 0.49 1 ]
[ 0.37 0.58 1 ]
[ 0.50 0.66 1 ]
[ 0.62 0.75 1 ]
[ 0.75 0.83 1 ]
[ 0.87 0.91 1 ]
[ 0 0 0.12 ]
[ 0 0 0.25 ]
[ 0 0 0.37 ]
[ 0 0 0.50 ]
[ 0 0 0.62 ]
[ 0 0 0.75 ]
[ 0 0 0.87 ]
[ 0 0 1 ]
[ 0.12 0.12 1 ]
[ 0.25 0.25 1 ]
[ 0.37 0.37 1 ]
[ 0.50 0.50 1 ]
[ 0.62 0.62 1 ]
[ 0.75 0.75 1 ]
[ 0.87 0.87 1 ]
[ 0.06 0 0.12 ]
[ 0.12 0 0.25 ]
[ 0.18 0 0.37 ]
[ 0.25 0 0.50 ]
[ 0.31 0 0.62 ]
[ 0.37 0 0.75 ]
[ 0.44 0 0.87 ]
[ 0.50 0 1 ]
[ 0.56 0.12 1 ]
[ 0.62 0.25 1 ]
[ 0.68 0.37 1 ]
[ 0.75 0.50 1 ]
[ 0.81 0.62 1 ]
[ 0.87 0.75 1 ]
[ 0.93 0.87 1 ]
[ 0.12 0 0.12 ]
[ 0.25 0 0.25 ]
[ 0.37 0 0.37 ]
[ 0.50 0 0.50 ]
[ 0.62 0 0.62 ]
[ 0.75 0 0.75 ]
[ 0.87 0 0.87 ]
[ 1 0 1 ]
[ 1 0.12 1 ]
[ 1 0.25 1 ]
[ 1 0.37 1 ]
[ 1 0.50 1 ]
[ 1 0.62 1 ]
[ 1 0.75 1 ]
[ 1 0.87 1 ]
[ 0.12 0 0.06 ]
[ 0.25 0 0.12 ]
[ 0.37 0 0.18 ]
[ 0.50 0 0.25 ]
[ 0.62 0 0.31 ]
[ 0.75 0 0.37 ]
[ 0.87 0 0.44 ]
[ 1 0 0.50 ]
[ 1 0.12 0.56 ]
[ 1 0.25 0.62 ]
[ 1 0.37 0.68 ]
[ 1 0.50 0.75 ]
[ 1 0.62 0.81 ]
[ 1 0.75 0.87 ]
[ 1 0.87 0.93 ]
[ 0 0 0 ] % default color--should be black=0,0,0
] def
/ColorOptions
[ MonoColors GrayColors ColorColors Color256] def
/CharSet
[
10#128 /Ccedilla
10#129 /udieresis
10#130 /eacute
10#131 /acircumflex
10#132 /adieresis
10#133 /agrave
10#134 /aring
10#135 /ccedilla
10#136 /ecircumflex
10#137 /edieresis
10#138 /egrave
10#139 /idieresis
10#140 /icircumflex
10#141 /igrave
10#142 /Adieresis
10#143 /Aring
10#144 /Eacute
10#145 /ae
10#146 /AE
10#147 /ocircumflex
10#148 /odieresis
10#149 /ograve
10#150 /ucircumflex
10#151 /ugrave
10#152 /ydieresis
10#153 /Odieresis
10#154 /Udieresis
10#155 /cent
10#156 /sterling
10#157 /yen
10#158 /P
10#159 /florin
10#160 /aacute
10#161 /iacute
10#162 /oacute
10#163 /uacute
10#164 /ntilde
10#165 /Ntilde
10#166 /ordfeminine
10#167 /ordmasculine
10#168 /questiondown
] def
% --------------------------------------------------------------------
% OldName NewName AF Encode font OldName to NewName
% --------------------------------------------------------------------
/AF
{
ReEncodeDict begin
/NewName exch def /OldName exch def
FontDirectory NewName known not
{
FontDirectory OldName known not { /OldName /Courier def } if
/BaseFontDict OldName findfont def
/NewFontDict BaseFontDict maxlength dict def
BaseFontDict
{
exch dup /FID ne
{
dup /Encoding eq
{
exch dup length array copy
NewFontDict 3 1 roll put
}
{
exch NewFontDict 3 1 roll put
}
ifelse
}
{
pop pop
}
ifelse
} forall
NewFontDict /FontName NewName put
CharSet aload
length 2 idiv
{
NewFontDict /Encoding get 3 1 roll put
}
repeat
NewName NewFontDict definefont pop
} if
end
} bind def
% ---------------------------------------------------------------------------
% PATTERN FILLS
% ---------------------------------------------------------------------------
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [ 1 0 0 1 0 0 ] def
/FontBBox [ 0 0 8 8 ] def
/Encoding 256 array def
0 1 255 { Encoding exch /.notdef put } for
Encoding 99 /linefill put % c=2
Encoding 100 /ltslash put % d=3
Encoding 101 /slash put % e=4
Encoding 102 /bkslash put % f=5
Encoding 103 /ltbkslash put % g=6
Encoding 104 /hatch put % h=7
Encoding 105 /xhatch put % i=8
Encoding 106 /interleav put % j=9
Encoding 107 /widedot put % k=10
Encoding 108 /closedot put % l=11
Encoding 122 /userfill put % z=12
/CharProcs 16 dict def
CharProcs begin
/.notdef {} bind def
/linefill { 8 8 true [1 0 0 -1 0 8] { <ffff0000ffff0000> } imagemask } bind def
/ltslash { 8 8 true [1 0 0 -1 0 8] { <0102040810204080> } imagemask } bind def
/slash { 8 8 true [1 0 0 -1 0 8] { <e0c183070e1c3870> } imagemask } bind def
/bkslash { 8 8 true [1 0 0 -1 0 8] { <f0783c1e0f87c3e1> } imagemask } bind def
/ltbkslash { 8 8 true [1 0 0 -1 0 8] { <a5d269b45a2d964b> } imagemask } bind def
/hatch { 8 8 true [1 0 0 -1 0 8] { <ff888888ff888888> } imagemask } bind def
/xhatch { 8 8 true [1 0 0 -1 0 8] { <8142241818244281> } imagemask } bind def
/interleav { 8 8 true [1 0 0 -1 0 8] { <cc33cc33cc33cc33> } imagemask } bind def
/widedot { 8 8 true [1 0 0 -1 0 8] { <8000080080000800> } imagemask } bind def
/closedot { 8 8 true [1 0 0 -1 0 8] { <8800220088002200> } imagemask } bind def
/userfill { 8 8 true [1 0 0 -1 0 8] { UserPat } imagemask } bind def
end
/BuildChar % fontdic charcode BuildChar
{
exch begin
dup 122 eq
{
8 0 setcharwidth
}{
8 0 0 0 8 8 setcachedevice
} ifelse
Encoding exch get
CharProcs exch get
end
exec
} bind def
end % of newfont
/PatFont newfont definefont pop
/UserPat <0001020400402010> def
/PatChar (a) def
/patfill
{
gsave
eoclip
% gsave 1 setgray fill grestore
gsave 0 CS fill grestore
ptm setmatrix /PatFont findfont 1 scalefont setfont
PatChar 0 FillStyle 97 add put
pathbbox newpath
4 2 roll
cvi 3 not and /py1 exch def
cvi 3 not and /px1 exch def
/py2 exch def
px1 sub 8 div ceiling cvi /pw exch def
py1 8 py2
{
px1 exch moveto
pw { PatChar show } repeat
} for
grestore
} bind def
% ---------------------------------------------------------------------------
/xround
{
dup round dup 0 eq
{
2 -1 roll 0 lt { -1 } { 1 } ifelse
}if
2 -1 roll pop
} bind def
/roundup
{
dup 0 lt {floor} {ceiling} ifelse
} bind def
/N { newpath } bind def
/M { moveto } bind def
/L { lineto } bind def
/C { closepath } bind def
% ----------------------------------------------------------------------
% x1 y1 x2 y2 REC draw rectangle (x1,y1)-(x2,y2)
% ----------------------------------------------------------------------
/REC
{
transform round exch round exch itransform 4 2 roll
transform round exch round exch itransform 4 2 roll
/y2 exch def /x2 exch def /y1 exch def /x1 exch def
newpath
x1 y1 moveto
x2 y1 lineto
x2 y2 lineto
x1 y2 lineto
closepath
} bind def
% ----------------------------------------------------------------------
% SK stroke the current path
% ----------------------------------------------------------------------
/SK
{
gsave DrawColor CS stroke grestore newpath
} bind def
% ----------------------------------------------------------------------
% FILL fill the current path
% ----------------------------------------------------------------------
/FILL
{
gsave
FillStyle 0 eq { 1 setgray }{ FillColor CS } ifelse
FillStyle 1 le ColorMode 1 eq or
{ eoclip fill } { patfill } ifelse
grestore
} bind def
% ----------------------------------------------------------------------
% x1 y1 x2 y2 VEC draw line from (x1,y1) to (x2,y2)
% ----------------------------------------------------------------------
/VEC
{
transform round exch round exch itransform 4 2 roll
transform round exch round exch itransform 4 2 roll
newpath moveto lineto SK
} bind def
% ----------------------------------------------------------------------
% x1 y1 VS start path
% ----------------------------------------------------------------------
/VS
{
transform round exch round exch itransform
newpath moveto
} bind def
% ----------------------------------------------------------------------
% x y VR close/continue path
% ----------------------------------------------------------------------
/VR
{
transform round exch round exch itransform
closepath moveto
} bind def
% ----------------------------------------------------------------------
% x y VC continue path
% ----------------------------------------------------------------------
/VC
{
transform round exch round exch itransform
lineto
} bind def
% ----------------------------------------------------------------------
% x y c PX simulated putpixel
% ----------------------------------------------------------------------
/PX
{
gsave
newpath CS 1 setlinewidth [] 0 setdash
transform round exch round exch itransform
moveto 0 0 rlineto stroke
% 1 0 360 arc fill
grestore
} bind def
% ----------------------------------------------------------------------
% x1 y1 x2 y2 d t BAR fill and outline rectangle (x1,y1)-(x2,y2)
% ----------------------------------------------------------------------
/BAR
{
/top exch def /dep exch def
REC FILL
newpath
x2 y1 moveto
x1 y1 lineto
x1 y2 lineto
x2 y2 lineto
x2 y1 lineto
dep 0 ne { BARDEP } if
SK
} bind def
/BARDEP
{
dep .6 mul /ydep exch def
y2 y1 sub /h exch def
x2 x1 sub /w exch def
dep ydep rlineto
0 h rlineto
top 0 ne { BARTOP } if
} bind def
/BARTOP
{
w neg 0 rlineto
dep neg ydep neg rlineto
w 0 rlineto
dep ydep rlineto
0 h neg rlineto
closepath
} bind def
% ----------------------------------------------------------------------
% x1 y1 x2 y2 PBR fill rectangle (x1,y1)-(x2,y2)
% ----------------------------------------------------------------------
/PBR
{
REC FILL
} bind def
% ----------------------------------------------------------------------
% xc yc th1 th2 a b EPATH elliptical path
% ----------------------------------------------------------------------
/EPATH
{
/savematrix matrix currentmatrix def
6 -2 roll translate scale
0 0 1 5 -2 roll arc
savematrix setmatrix
} bind def
% ----------------------------------------------------------------------
% xc yc th1 th2 a b ARC draw an elliptical arc
% ----------------------------------------------------------------------
/ARC
{
gsave
newpath EPATH [] 0 setdash SK
grestore
} bind def
% ----------------------------------------------------------------------
% xc yc th1 th2 a b PIE draw and fill an elliptical pieslice
% ----------------------------------------------------------------------
/PIE
{
gsave
newpath
6 -2 roll 2 copy moveto 6 2 roll
EPATH closepath FILL SK
grestore
} bind def
% ----------------------------------------------------------------------
% xc yc a b ELI draw and fill an ellipse
% ----------------------------------------------------------------------
/ELI
{
4 2 roll 0 360 6 -2 roll
gsave
newpath EPATH FILL SK
grestore
} bind def
% ----------------------------------------------------------------------
% x y dx dy (text) TXT draw text at x,y
% ----------------------------------------------------------------------
/TXT
{
gsave
DrawColor CS
5 -2 roll translate TxtDir 0 ne { 90 rotate } if
3 1 roll MoveChar mul 2 div
exch 2 index stringwidth pop mul 2 div
exch moveto show
grestore
} bind def
% ----------------------------------------------------------------------
% size dir font TXS sets text size
% ----------------------------------------------------------------------
/TXS
{
/CurFont exch def /TxtDir exch def /TxtHt exch def
CurFont findfont TxtHt scalefont setfont
/MoveChar TxtHt def
% newpath 0 0 moveto
% (0|h) false charpath flattenpath pathbbox newpath
% /MoveChar exch def 3 { pop } repeat
} bind def
% ----------------------------------------------------------------------
% array LD defines line style
% ----------------------------------------------------------------------
/LD
{
dup /LineStyle exch def 0 setdash
} bind def
% ----------------------------------------------------------------------
% draw fill CD defines colors
% ----------------------------------------------------------------------
/CD
{
/FillColor exch def /DrawColor exch def
} bind def
% ----------------------------------------------------------------------
% pat# FD defines fill pattern
% ----------------------------------------------------------------------
/FD
{
/FillStyle exch def
} bind def
% ----------------------------------------------------------------------
% patstr FPD defines user fill
% ----------------------------------------------------------------------
/FPD
{
/UserPat exch def /FillStyle 25 def
} bind def
% ----------------------------------------------------------------------
% color CS select color
% ----------------------------------------------------------------------
/CS
{
ColorTable exch get
dup type /arraytype ne { setgray }{ {} forall setrgbcolor } ifelse
} bind def
% ----------------------------------------------------------------------
% x1 y1 x2 y2 CLIP set clipping region
% ----------------------------------------------------------------------
/CLIP
{
transform round exch round exch itransform 4 2 roll
transform round exch round exch itransform 4 2 roll
grestore gsave % reset to INXX state
0 setlinewidth REC eoclip newpath
% restore current graphics state
TxtHt TxtDir CurFont TXS
LineWidth setlinewidth
LineStyle 0 setdash
} bind def
% ----------------------------------------------------------------------
% no LW set line width
% ----------------------------------------------------------------------
/LW
{
StdLine mul dup /LineWidth exch def setlinewidth
} bind def
% ----------------------------------------------------------------------
% Width Height Orient Left Top Cmode INXX Initialize Page
% Orient: 0=portrait, 1=landscape
% ----------------------------------------------------------------------
/INXX
{
/PGstate save def
dup 3 gt { pop 0 } if /ColorMode exch def
ColorOptions ColorMode get /ColorTable exch def
/ptm
[
1 1 matrix defaultmatrix dtransform xround exch xround exch
0 exch 0 exch 0 0
] def
2 index 0 ne % if landscape
{
/ptm
[
ptm aload pop 6 2 roll 4 2 roll neg exch neg exch 6 -2 roll
] def
}
if
0.1 0.1 scale translate
0 eq
{ neg 0 exch translate pop } % portrait
{ 90 rotate neg exch neg exch translate } % landscape
ifelse
/StdLine
StdLine dup dtransform roundup exch roundup exch idtransform pop
def
/Courier /CourierGD AF
120 0 /CourierGD TXS
15 15 CD
1 FD
1 LW
[] LD
1.415 setmiterlimit
gsave
} bind def
% ----------------------------------------------------------------------
% TERM Display Page
% ----------------------------------------------------------------------
/TERM
{
%xx PGstate restore
showpage
PGstate restore
} bind def
% ----------------------------------------------------------------------
% ulx uly width height imagecols imagerows CI hexdata ;Color Image
% ----------------------------------------------------------------------
/CI
{
gsave
/rows exch def /cols exch def
4 2 roll translate scale
/picstr cols string def
cols rows 8
[ cols 0 0 rows neg 0 0 ]
{ currentfile picstr readhexstring pop }
false 3 colorimage
grestore
} bind def
% ----------------------------------------------------------------------
% ulx uly width height imagecols imagerows bits GI hexdata ;GrayScale Image
% ----------------------------------------------------------------------
/GI
{
gsave
/bits exch def /rows exch def /cols exch def
4 2 roll translate scale
% /picstr rows string def
/picstr cols 8 idiv bits mul string def
cols rows bits
[ cols 0 0 rows neg 0 0 ]
{ currentfile picstr readhexstring pop }
image
grestore
} bind def
% ...........................................................................
% Always use gsave/grestore around user proc code
% ----------------------------------------------------------------------
% print multiple copies
% ----------------------------------------------------------------------
/copies
{
/#copies exch def pop pop
} bind def
% ----------------------------------------------------------------------
% display text rotated to any angle.
% ----------------------------------------------------------------------
/ROT % x y (text) angle ROT
{
gsave
DrawColor CS % select the drawing color
4 -2 roll translate % move the origin to (x,y)
rotate % rotate to angle
% compute coords to center vertically
0 0 moveto (X) false charpath flattenpath pathbbox newpath
2 index add -2 div 0 exch moveto pop pop pop
show
grestore
} bind def
% ----------------------------------------------------------------------
% x y dx dy (text) TXT90 draw text at x,y rotated 90 degrees clockwise
% Note: we are setting PostScript rotation to 270 (counterclockwise) to
% get our internal 90 (clockwise)
% ----------------------------------------------------------------------
/TXT90
{
gsave
DrawColor CS
5 -2 roll translate TxtDir 0 ne { 33 rotate } if
3 1 roll MoveChar mul 2 div
exch 2 index stringwidth pop mul 2 div
270 rotate
exch moveto show
grestore
} bind def
% ----------------------------------------------------------------------
% x y dx dy (text) TXT180 draw text at x,y rotated 180 degrees clockwise
% ----------------------------------------------------------------------
/TXT180
{
gsave
DrawColor CS
5 -2 roll translate TxtDir 0 ne { 33 rotate } if
3 1 roll MoveChar mul 2 div
exch 2 index stringwidth pop mul 2 div
180 rotate
exch moveto show
grestore
} bind def
% ----------------------------------------------------------------------
% x y dx dy (text) TXT270 draw text at x,y rotated 270 degrees clockwise
% Note: we are setting PostScript rotation to 90 (counterclockwise) to
% get our internal 270 (clockwise)
% ----------------------------------------------------------------------
/TXT270
{
gsave
DrawColor CS
5 -2 roll translate TxtDir 0 ne { 33 rotate } if
3 1 roll MoveChar mul 2 div
exch 2 index stringwidth pop mul 2 div
90 rotate
exch moveto show
grestore
} bind def
% ....................................................................
%%EndProlog