wolffd@0
|
1 /BOX {
|
wolffd@0
|
2 /boxy1 exch def /boxx1 exch def /boxy0 exch def /boxx0 exch def
|
wolffd@0
|
3 boxx0 boxy0 moveto boxx1 boxy0 lineto
|
wolffd@0
|
4 boxx1 boxy1 lineto boxx0 boxy1 lineto
|
wolffd@0
|
5 closepath
|
wolffd@0
|
6 } def
|
wolffd@0
|
7 /SCP { stroke initclip newpath BOX clip newpath } def
|
wolffd@0
|
8 /CL { stroke setrgbcolor } def
|
wolffd@0
|
9 /DO { stroke } def
|
wolffd@0
|
10 /NP { newpath } def
|
wolffd@0
|
11 /FI { fill } def
|
wolffd@0
|
12 /LI { moveto lineto } def
|
wolffd@0
|
13 /CT { curveto } def
|
wolffd@0
|
14 /AR {
|
wolffd@0
|
15 /ang2 exch def /ang1 exch def
|
wolffd@0
|
16 /radius exch def /y2x exch def /cy exch def /cx exch def
|
wolffd@0
|
17 gsave
|
wolffd@0
|
18 cx cy translate 1 y2x scale 0 0 radius ang1 ang2 arc stroke
|
wolffd@0
|
19 grestore
|
wolffd@0
|
20 } def
|
wolffd@0
|
21 /ARF {
|
wolffd@0
|
22 /ang2 exch def /ang1 exch def
|
wolffd@0
|
23 /radius exch def /y2x exch def /cy exch def /cx exch def
|
wolffd@0
|
24 gsave
|
wolffd@0
|
25 cx cy translate 1 y2x scale 0 0 radius ang1 ang2 arc fill
|
wolffd@0
|
26 grestore
|
wolffd@0
|
27 } def
|
wolffd@0
|
28 /TXT {
|
wolffd@0
|
29 /texth exch def
|
wolffd@0
|
30 /textf exch def
|
wolffd@0
|
31 /textn exch def
|
wolffd@0
|
32 /texts exch def
|
wolffd@0
|
33 /textyj exch def /texty exch def
|
wolffd@0
|
34 /textxj exch def /textx exch def
|
wolffd@0
|
35 textf findfont texth scalefont dup setfont
|
wolffd@0
|
36 /FontBBox get 1 get 1000 div texth mul /textbl exch def
|
wolffd@0
|
37 /textth texth textn mul def /texttw 0 def
|
wolffd@0
|
38 0 1 textn 1 sub {
|
wolffd@0
|
39 texts exch get 0 get stringwidth pop
|
wolffd@0
|
40 dup texttw gt { /texttw exch def } { pop } ifelse
|
wolffd@0
|
41 } for
|
wolffd@0
|
42 textyj (b) eq { /ty texty textth add textbl add def } if
|
wolffd@0
|
43 textyj (d) eq { /ty texty textth add def } if
|
wolffd@0
|
44 textyj (c) eq { /ty texty textth 2 div add def } if
|
wolffd@0
|
45 textyj (u) eq { /ty texty def } if
|
wolffd@0
|
46 /ty ty textbl sub def
|
wolffd@0
|
47 textxj (l) eq { /tx textx def } if
|
wolffd@0
|
48 textxj (c) eq { /tx textx texttw 2 div sub def } if
|
wolffd@0
|
49 textxj (r) eq { /tx textx texttw sub def } if
|
wolffd@0
|
50 0 1 textn 1 sub {
|
wolffd@0
|
51 /ty ty texth sub def
|
wolffd@0
|
52 texts exch get dup 0 get /ts exch def 1 get /tj exch def
|
wolffd@0
|
53 tj (l) eq { tx ty moveto ts show } if
|
wolffd@0
|
54 tj (n) eq {
|
wolffd@0
|
55 tx texttw ts stringwidth pop sub 2 div add ty moveto ts show
|
wolffd@0
|
56 } if
|
wolffd@0
|
57 tj (r) eq {
|
wolffd@0
|
58 tx texttw ts stringwidth pop sub add ty moveto ts show
|
wolffd@0
|
59 } if
|
wolffd@0
|
60 } for
|
wolffd@0
|
61 } def
|
wolffd@0
|
62
|
wolffd@0
|
63 /colorimage where {
|
wolffd@0
|
64 pop
|
wolffd@0
|
65 } {
|
wolffd@0
|
66 /bwproc {
|
wolffd@0
|
67 rgbproc dup length 3 idiv string 0 3 0 5 -1 roll {
|
wolffd@0
|
68 add 2 1 roll 1 sub dup 0 eq {
|
wolffd@0
|
69 pop 3 idiv 3 -1 roll dup 4 -1 roll
|
wolffd@0
|
70 dup 3 1 roll 5 -1 roll put 1 add 3 0
|
wolffd@0
|
71 } {
|
wolffd@0
|
72 2 1 roll
|
wolffd@0
|
73 } ifelse
|
wolffd@0
|
74 } forall
|
wolffd@0
|
75 pop pop pop
|
wolffd@0
|
76 } def
|
wolffd@0
|
77 /colorimage {
|
wolffd@0
|
78 pop pop /rgbproc exch def {bwproc} image
|
wolffd@0
|
79 } bind def
|
wolffd@0
|
80 } ifelse
|