home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / WordProcessors / DC-PS333.DMS / in.adf / Printers.lha / postscript.prolog < prev    next >
Encoding:
Text File  |  1997-09-22  |  29.0 KB  |  1,133 lines

  1. %%BeginProlog
  2. % $VER: PostScript.prolog 1.3 (11.8.97)
  3. %Copyright 1994-97 Soft-Logik Publishing Corp.
  4.  
  5. /AsphaltDict dup 200 dict def load begin
  6.  
  7. %
  8. % basic definitions
  9. %
  10. /dko true def
  11. /cko true def
  12.  
  13. /bdef {bind def}bind def
  14. /xdef {exch def}bdef
  15. /ldef {load def}bdef
  16. /dmatrix matrix def
  17. /tmatrix matrix def
  18. /pmatrix matrix def
  19.  
  20. /deltax 0 def
  21. /deltay 0 def
  22. /slant 0 def
  23. /twist 0 def
  24. /xscl 0 def
  25. /yscl 0 def
  26. /bang 0 def
  27. /eang 0 def
  28.  
  29. /tilescalex 0 def
  30. /tilescaley 0 def
  31. /bh 0 def
  32. /bv 0 def
  33.  
  34. %
  35. % fill defines
  36. %
  37. /SG /setgray ldef
  38. /PSfill /fill ldef
  39. /PSeofill /eofill ldef
  40. /PSstroke /stroke ldef
  41. /PSshow /show ldef
  42. /PSashow /ashow ldef
  43. /PSwidthshow /widthshow ldef
  44. /PSawidthshow /awidthshow ldef
  45.  
  46. /fill {cko currentgray 1.0 ne or {PSfill}{newpath}ifelse} bdef
  47. /eofill {cko currentgray 1.0 ne or {PSeofill}{newpath}ifelse} bdef
  48. /stroke {cko currentgray 1.0 ne or {PSstroke}{newpath}ifelse} bdef
  49. /show {cko currentgray 1.0 ne or {PSshow}{stringwidth rmoveto}ifelse} bdef
  50. /ashow {cko currentgray 1.0 ne or {PSashow}{stringwidth rmoveto pop pop}ifelse} bdef
  51. /widthshow {cko currentgray 1.0 ne or {PSwidthshow}{stringwidth rmoveto pop pop pop pop}ifelse} bdef
  52. /awidthshow {cko currentgray 1.0 ne or {PSawidthshow}{stringwidth rmoveto pop pop pop pop pop}ifelse} bdef
  53.  
  54. /setcmykcolor where
  55.  {pop /SCMYK /setcmykcolor ldef}
  56.  {/SCMYK {1 sub 4 1 roll 3 {3 index add neg dup 0 lt{pop 0}if 3 1 roll}repeat setrgbcolor pop}bdef}ifelse
  57.  
  58. %
  59. % drawing definitions
  60. %
  61. /sclm [0 0 0 0 0 0] def
  62. /scl{transform round .2 add exch round .2 add exch itransform}bdef
  63.  
  64. %
  65. %
  66. %
  67. /PGSEncoding 256 array def
  68. % duplicates: acute, quoteleft, quoteright
  69. % 000-007
  70. /.notdef        /dotlessi        /grave            /acute            /circumflex        /tilde            /breve            /dotaccent
  71. % 010-017
  72. /ring            /hungarumlaut    /ogonek            /caron            /.notdef        /.notdef        /.notdef        /.notdef
  73. % 020-027
  74. /quotedblbase    /quotesinglbase    /quotesingle    /quoteleft        /quoteright        /.notdef        /.notdef        /.notdef
  75. % 030-037
  76. /.notdef        /.notdef        /.notdef        /.notdef        /.notdef        /.notdef        /.notdef        /.notdef
  77. % 040-047
  78. /space            /exclam            /quotedbl        /numbersign        /dollar            /percent        /ampersand        /quotesingle
  79. % 050-057
  80. /parenleft        /parenright        /asterisk        /plus            /comma            /hyphen            /period            /slash
  81. % 060-067
  82. /zero            /one            /two            /three            /four            /five            /six            /seven
  83. % 070-077
  84. /eight            /nine            /colon            /semicolon        /less            /equal            /greater        /question
  85. % 100-107
  86. /at                /A                /B                /C                /D                /E                /F                /G
  87. % 110-117
  88. /H                /I                /J                /K                /L                /M                /N                /O
  89. % 120-127
  90. /P                /Q                /R                /S                /T                /U                /V                /W
  91. % 130-137
  92. /X                /Y                /Z                /bracketleft    /backslash        /bracketright    /asciicircum    /underscore
  93. % 140-147
  94. /grave            /a                /b                /c                /d                /e                /f                /g
  95. % 150-157
  96. /h                /i                /j                /k                /l                /m                /n                /o
  97. % 160-167
  98. /p                /q                /r                /s                /t                /u                /v                /w
  99. % 170-177
  100. /x                /y                /z                /braceleft        /bar            /braceright        /asciitilde        /.notdef
  101. % 200-207
  102. /perthousand    /florin            /notequal        /infinity        /lessequal        /greaterequal    /.notdef        /.notdef
  103. % 210-217
  104. /ellipsis        /endash            /emdash            /quotedblleft    /quotedblright    /guilsinglleft    /guilsinglright    /pi                
  105. % 220-227
  106. /fraction        /dagger            /daggerdbl        /trademark        /bullet            /fi                /fl                /Ydieresis        
  107. % 230-237
  108. /Lslash            /lslash            /OE                /oe                /Scaron            /scaron            /Zcaron            /zcaron            
  109. % 240-247
  110. /space            /exclamdown        /cent            /sterling        /currency        /yen            /brokenbar        /section
  111. % 250-257
  112. /dieresis        /copyright        /ordfeminine    /guillemotleft    /logicalnot        /minus            /registered        /macron
  113. % 260-267
  114. /degree            /plusminus        /twosuperior    /threesuperior    /acute            /mu                /paragraph        /periodcentered
  115. % 270-277
  116. /cedilla        /onesuperior    /ordmasculine    /guillemotright    /onequarter        /onehalf        /threequarters    /questiondown
  117. % 300-307
  118. /Agrave            /Aacute            /Acircumflex    /Atilde            /Adieresis        /Aring            /AE                /Ccedilla
  119. % 310-317
  120. /Egrave            /Eacute            /Ecircumflex    /Edieresis        /Igrave            /Iacute            /Icircumflex    /Idieresis
  121. % 320-327
  122. /Eth            /Ntilde            /Ograve            /Oacute            /Ocircumflex    /Otilde            /Odieresis        /multiply
  123. % 330-337
  124. /Oslash            /Ugrave            /Uacute            /Ucircumflex    /Udieresis        /Yacute            /Thorn            /germandbls
  125. % 340-347
  126. /agrave            /aacute            /acircumflex    /atilde            /adieresis        /aring            /ae                /ccedilla
  127. % 350-357
  128. /egrave            /eacute            /ecircumflex    /edieresis        /igrave            /iacute            /icircumflex    /idieresis
  129. % 360-367
  130. /eth            /ntilde            /ograve            /oacute            /ocircumflex    /otilde            /odieresis        /divide
  131. % 370-377
  132. /oslash            /ugrave            /uacute            /ucircumflex    /udieresis        /yacute            /thorn            /ydieresis
  133. PGSEncoding 0 256 getinterval astore pop
  134.  
  135. /PGS42Encoding 256 array def
  136. % 000-007
  137. /.notdef    /a215        /a67        /a141        /a216        /a97        /a219        /a220
  138. % 010-017
  139. /a221        /hungarumlaut    /a224        /a225    /.notdef    /.notdef    /.notdef    /.notdef
  140. % 020-027
  141. /a197        /a196        /a10        /a182        /a183        /.notdef    /.notdef    /.notdef
  142. % 030-037
  143. /.notdef    /.notdef    /.notdef    /.notdef    /.notdef    /.notdef    /.notdef    /.notdef
  144. % 040-047
  145. /a3            /a4            /a5            /a6            /a7            /a8            /a9            /a10
  146. % 050-057
  147. /a11        /a12        /a13        /a14        /a15        /a16        /a17        /a18
  148. % 060-067
  149. /a19        /a20        /a21        /a22        /a23        /a24        /a25        /a26
  150. % 070-077    
  151. /a27        /a28        /a29        /a30        /a31        /a32        /a33        /a34
  152. % 100-107
  153. /a35        /a36        /a37        /a38        /a39        /a40        /a41        /a42
  154. % 110-117
  155. /a43        /a44        /a45        /a46        /a47        /a48        /a49        /a50
  156. % 120-127
  157. /a51        /a52        /a53        /a54        /a55        /a56        /a57        /a58
  158. % 130-137
  159. /a59        /a60        /a61        /a62        /a63        /a64        /a65        /a66
  160. % 140-147
  161. /a67        /a68        /a69        /a70        /a71        /a72        /a73        /a74
  162. % 150-157
  163. /a75        /a76        /a77        /a78        /a79        /a80        /a81        /a82
  164. % 160-167
  165. /a83        /a84        /a85        /a86        /a87        /a88        /a89        /a90
  166. % 170-177
  167. /a91        /a92        /a93        /a94        /a95        /a96        /a97        /.notdef
  168. % 200-207
  169. /a198        /a156        /a143        /a146        /a148        /a149        /.notdef    /.notdef
  170. % 210-217
  171. /a171        /a178        /a179        /a180        /a181        /a190        /a191        /a154                
  172. % 220-227
  173. /a188        /a130        /a194        /a140        /a135        /a192        /a193        /a187        
  174. % 230-237
  175. /Lslash        /lslash        /a176        /a177        /Scaron        /scaron        /Zcaron        /zcaron            
  176. % 240-247
  177. /a3            /a163        /a132        /a133        /a189        /a150        /brokenbar    /a134
  178. % 250-257
  179. /a142        /a139        /a157        /a169        /a164        /minus        /a138        /a218
  180. % 260-267
  181. /a131        /a147        /twosuperior /threesuperior    /a141    /a151        /a136        /a195
  182. % 270-277
  183. /a222        /onesuperior /a158        /a170    /onequarter        /onehalf    /threequarters    /a162
  184. % 300-307
  185. /a173        /a201        /a199        /a174        /a98        /a99        /a144        /a100
  186. % 310-317
  187. /a203        /a101        /a200        /a202        /Igrave        /Iacute        /Icircumflex    /Idieresis
  188. % 320-327
  189. /Eth        /a102        /a211        /a208        /a209         /a175        /a103        /multiply
  190. % 330-337
  191. /a145        /a214        /a212        /a213        /a104        /Yacute        /Thorn        /a137
  192. % 340-347
  193. /a106        /a105        /a107         /a109        /a108        /a110        /a160        /a111
  194. % 350-357
  195. /a113        /a112        /a114         /a115        /a117        /a116        /a118        /a119
  196. % 360-367
  197. /eth        /a120        /a122        /a121        /a123        /a125        /a124        /a184
  198. % 370-377
  199. /a161        /a127        /a126        /a129        /a129        /yacute        /thorn        /a186
  200. PGS42Encoding 0 256 getinterval astore pop
  201.  
  202. %
  203. % path constructors
  204. %
  205. % - N -
  206. /N/newpath ldef
  207.  
  208. % x y M -
  209. /M{scl moveto}bdef
  210.  
  211. % x y L -
  212. /L{scl lineto}bdef
  213.  
  214. % cx1 cy1 cx2 cy2 px2 py2 C -
  215. /C{scl 6 2 roll scl 6 2 roll scl 6 2 roll curveto}bdef
  216.  
  217. % cx cy rx ry ba ea slant twist A -
  218. /A{matrix currentmatrix 9 1 roll /twist xdef/slant xdef/eang xdef/bang xdef/yscl xdef/xscl xdef scl translate xscl yscl scale sclm 0 twist cos put
  219. sclm 1 twist sin put sclm 2 slant sin neg put sclm 3 slant cos put sclm concat 0 0 1 bang eang arc setmatrix}bdef
  220.  
  221. % cx cy rx ry ba ea slant twist AN -
  222. /AN{matrix currentmatrix 9 1 roll /twist xdef/slant xdef/eang xdef/bang xdef/yscl xdef/xscl xdef scl translate xscl yscl scale sclm 0 twist cos put
  223. sclm 1 twist sin put sclm 2 slant sin neg put sclm 3 slant cos put sclm concat 0 0 1 bang eang arcn setmatrix}bdef
  224.  
  225. % - CP -
  226. /CP/closepath ldef
  227.  
  228. %
  229. % pattern fill operators
  230. %
  231. % - patternpath -
  232. /patternpath{ %bdef
  233.   cko currentgray 1.0 ne or {
  234.  
  235.   /mypatternfont findfont begin FontDict /ctm get setmatrix
  236.   currentdict setfont
  237.  
  238.   FontDict begin
  239.     FontMatrix concat
  240.     width 0 dtransform
  241.     round width div exch round width div exch
  242.     0 height dtransform
  243.     round height div exch
  244.     round height div exch
  245.     0 0 transform round exch round exch
  246.     ptm astore setmatrix
  247.     pathbbox
  248.     height div ceiling height mul 4 1 roll
  249.     width div ceiling width mul 4 1 roll
  250.     height div floor height mul 4 1 roll
  251.     width div floor width mul 4 1 roll
  252.     2 index sub height div ceiling cvi exch
  253.     3 index sub width div ceiling cvi exch
  254.     4 2 roll moveto
  255.     FontMatrix ptm invertmatrix pop
  256.     { %repeat
  257.       gsave
  258.       ptm concat
  259.       dup str length idiv {str PSshow}repeat
  260.       dup str length mod str exch 0 exch getinterval PSshow
  261.       grestore
  262.       0 height rmoveto
  263.     }repeat
  264.     pop
  265.   end end
  266.   } if
  267. }bdef
  268.  
  269. % - patternfill -
  270. /patternfill{ %bdef
  271.   gsave
  272.   1 setgray
  273.   fill
  274.   grestore
  275.  
  276.   gsave
  277.   clip patternpath
  278.   grestore
  279.   newpath
  280. }bdef
  281.  
  282. % - patterneofill -
  283. /patterneofill{ %bdef
  284.   gsave
  285.   1 setgray
  286.   eofill
  287.   grestore
  288.  
  289.   gsave
  290.   eoclip patternpath
  291.   grestore
  292.   newpath
  293. }bdef
  294.  
  295. % - patternstroke -
  296. /patternstroke{ %bdef
  297.   strokepath
  298.   gsave
  299.   1 setgray
  300.   eofill
  301.   grestore
  302.  
  303.   gsave
  304.   clip patternpath
  305.   grestore
  306.   newpath
  307. }bdef
  308.  
  309. % <pattern> P -
  310. /P{
  311.  /patterned true def
  312.  /pattern xdef
  313.  /mypatternfont findfont begin
  314.  FontDict begin
  315.  true
  316.   0 1 patterncount 1 sub {
  317.    dup patterns exch get pattern eq
  318.       {0 1 str length 1 sub{str exch 2 index put}for pop pop false exit}
  319.    if
  320.    pop
  321.  }for
  322.  {
  323.    patterns patterncount pattern put
  324.     0 1 str length 1 sub {str exch patterncount put}for
  325.    /patterncount patterncount 1 add def
  326.  }if
  327.  end
  328.  end
  329.  /FILL{patternfill}bdef
  330.  /EOFILL{patterneofill}bdef
  331.  /STROKE{patternstroke}bdef
  332. }bdef
  333.  
  334. /S{
  335.  /patterned false def
  336.  /FILL{fill}bdef
  337.  /EOFILL{eofill}bdef
  338.  /STROKE{stroke}bdef
  339. }bdef
  340.  
  341. %
  342. % gradient/radial/shape fill operators
  343. %
  344. /DOGRAD{
  345.  gsave
  346.  pmatrix setmatrix flattenpath exec 
  347.  angle rotate pathbbox /ury xdef /urx xdef /lly xdef /llx xdef
  348.  /l urx llx sub def
  349.  /w ury lly sub def
  350.  /steps l 72 div currentscreen pop pop mul cvi 1 add dup 256 gt{pop 256}if def
  351.  /dd l steps div def
  352.  
  353.  0 1 steps
  354.  {
  355.   steps div dup /frac xdef ramp /rfrac xdef
  356.   tc2 0 get tc1 0 get sub rfrac mul tc1 0 get add
  357.   tc2 1 get tc1 1 get sub rfrac mul tc1 1 get add
  358.   tc2 2 get tc1 2 get sub rfrac mul tc1 2 get add
  359.   tc2 3 get tc1 3 get sub rfrac mul tc1 3 get add scmyk
  360.  
  361.   newpath gsave
  362.   l frac mul llx add lly moveto
  363.   0 w rlineto dd 0 rlineto 0 w neg rlineto closepath
  364.   FILL grestore
  365.  }for
  366.  
  367.  grestore
  368.  newpath
  369. }bdef
  370.  
  371. %
  372. %
  373. /DORADIAL{
  374.  gsave
  375.  pmatrix setmatrix flattenpath exec 
  376.  pathbbox /ury xdef /urx xdef /lly xdef /llx xdef
  377.  /xc llx urx add 2 div dx add def
  378.  /yc lly ury add 2 div dy add def
  379.  /radius llx xc sub dup mul lly yc sub dup mul add sqrt def
  380.  llx xc sub dup mul ury yc sub dup mul add sqrt dup radius gt {/radius xdef}{pop}ifelse
  381.  urx xc sub dup mul lly yc sub dup mul add sqrt dup radius gt {/radius xdef}{pop}ifelse
  382.  urx xc sub dup mul ury yc sub dup mul add sqrt dup radius gt {/radius xdef}{pop}ifelse
  383.  
  384.  /steps radius 72 div currentscreen pop pop mul cvi 1 add dup 256 gt{pop 256}if def
  385.  
  386.  steps -1 0
  387.  {
  388.   steps div dup /frac xdef ramp /rfrac xdef
  389.   tc2 0 get tc1 0 get sub rfrac mul tc1 0 get add
  390.   tc2 1 get tc1 1 get sub rfrac mul tc1 1 get add
  391.   tc2 2 get tc1 2 get sub rfrac mul tc1 2 get add
  392.   tc2 3 get tc1 3 get sub rfrac mul tc1 3 get add scmyk
  393.   newpath xc yc radius frac mul 0 360 arc FILL
  394.  }for
  395.  
  396.  grestore
  397.  newpath
  398. }bdef
  399.  
  400. %
  401. %
  402. /DOSHAPE{
  403.  /steps 30 def
  404.  /fillproc xdef
  405.  
  406.  currentflat mark currentflat
  407.  {
  408.   {
  409.    dup setflat mark fillproc
  410.  
  411.    tc1 0 get tc1 1 get tc1 2 get tc1 3 get scmyk
  412.    currentflat mark currentflat
  413.    {
  414.     dup setflat mark
  415.     {FILL}gsave stopped grestore {cleartomark 1.3 mul dup 100 gt {cleartomark setflat stop}if}{cleartomark exit}ifelse
  416.    }loop
  417.    cleartomark setflat
  418.  
  419.    steps -1 0
  420.    {
  421.     steps div dup /frac xdef ramp /rfrac xdef
  422.     tc1 0 get tc2 0 get sub rfrac mul tc2 0 get add
  423.     tc1 1 get tc2 1 get sub rfrac mul tc2 1 get add
  424.     tc1 2 get tc2 2 get sub rfrac mul tc2 2 get add
  425.     tc1 3 get tc2 3 get sub rfrac mul tc2 3 get add scmyk
  426.     []0 setdash xc 2 mul frac mul setlinewidth
  427.  
  428.     currentflat mark currentflat
  429.     {
  430.      dup setflat mark
  431.      {STROKE}gsave stopped grestore {cleartomark 1.3 mul dup 100 gt {cleartomark setflat stop}if}{cleartomark exit}ifelse
  432.     }loop
  433.     cleartomark setflat
  434.  
  435.    }for
  436.   }
  437. %  gsave stopped grestore {cleartomark 1.3 mul dup 100 gt {cleartomark setflat stop}if}{cleartomark exit}ifelse
  438.   gsave stopped grestore {cleartomark 1.3 mul dup 100 gt {exit}if}{cleartomark exit}ifelse
  439.  }loop
  440.  cleartomark setflat
  441.  newpath
  442. }bdef
  443.  
  444. %
  445. % join miterlimit cap [dashpattern] dashoffset width lnsfunc lnefunc ST -
  446. %
  447. /ST{
  448.  load /lnefunc xdef load /lnsfunc xdef 
  449.  setlinewidth setdash setlinecap 2 div sin 1 exch div setmiterlimit setlinejoin
  450.  
  451.  /lnsfunc load /LENone load ne {
  452.   mark
  453.   /havestart 0 def
  454.   {havestart 2 eq {x2 x1 sub y1 y2 sub atan 90 add x1 y1 5 -2 roll}if /havestart 1 def /y1 xdef /x1 xdef} %moveto
  455.   {havestart 1 eq {/y2 xdef /x2 xdef x1 x2 ne y1 y2 ne or {/havestart 2 def}if}{pop pop}ifelse} %lineto
  456.   {havestart 1 eq {/py2 xdef /px2 xdef /cx2 xdef /cy2 xdef /y2 xdef /x2 xdef x1 x2 ne y1 y2 ne or
  457.     {/havestart 2 def}{x1 cx2 ne y1 cy2 ne or {/x2 cx2 def /y2 cy2 def /havestart 2 def}
  458.     {x1 px2 ne y1 py2 ne or {/x2 px2 def /y2 py2 def /havestart 2 def}if}
  459.     ifelse}ifelse}{pop pop pop pop pop pop}ifelse} %curveto
  460.   {/havestart 0 def} %closepath
  461.   pathforall
  462.   havestart 2 eq {x2 x1 sub y1 y2 sub atan 90 add x1 y1} if
  463.  }if
  464.  
  465.  /lnefunc load /LENone load ne {
  466.   mark
  467.   /havestart 0 def
  468.   {havestart 2 eq {x2 x1 sub y1 y2 sub atan 90 add x1 y1 5 -2 roll}if /havestart 1 def /y1 xdef /x1 xdef} %moveto
  469.   {/py2 xdef /px2 xdef x1 px2 ne y1 py2 ne or {/x2 x1 def /y2 y1 def /x1 px2 def /y1 py2 def /havestart 2 def}if} %lineto
  470.   {/py2 xdef /px2 xdef /cy2 xdef /cx2 xdef /cy1 xdef /cx1 xdef
  471.     x1 cx1 ne y1 cy1 ne or {/x2 x1 def /y2 y1 def /x1 cx1 def /y1 cy1 def /havestart 2 def}if
  472.     x1 cx2 ne y1 cy2 ne or {/x2 x1 def /y2 y1 def /x1 cx2 def /y1 cy2 def /havestart 2 def}if
  473.     x1 px2 ne y1 py2 ne or {/x2 x1 def /y2 y1 def /x1 px2 def /y1 py2 def /havestart 2 def}if} %curveto
  474.   {/havestart 0 def} %closepath
  475.   pathforall
  476.   havestart 2 eq {x2 x1 sub y1 y2 sub atan 90 add x1 y1} if
  477.  }if
  478.  
  479.  strokepath
  480.  
  481.  /lnefunc load /LENone load ne {
  482.   counttomark 3 div cvi {matrix currentmatrix 4 1 roll translate rotate currentlinewidth dup scale lnefunc setmatrix} repeat pop
  483.  }if
  484.  /lnsfunc load /LENone load ne {
  485.   counttomark 3 div cvi {matrix currentmatrix 4 1 roll translate rotate currentlinewidth dup scale lnsfunc setmatrix} repeat pop
  486.  }if
  487.  
  488. }bdef
  489.  
  490. % fill functions
  491.  
  492. %
  493. % screen spot functions
  494. %
  495. /SSNewDot {180 mul cos exch 180 mul cos add 2 div}bdef
  496. /SSDot {dup mul exch dup mul add 1.0 exch sub}bdef
  497. /SSRing {dup mul exch dup mul add 1.0 exch sub abs 1.0 exch sub}bdef
  498. /SSDonut {dup mul exch dup mul add sqrt .5 sub abs 1.0 exch sub}bdef
  499. /SSLine {exch pop abs}bdef
  500. /SSTriangle {2 exch sub exch abs 2 mul sub 3 div}bdef
  501. /SSPropeller {/y xdef /x xdef x .001 add atan cvi 72 mod 72 sub abs 72 div y y mul x x mul add 1 exch sub add 2 div}bdef
  502.  
  503. %
  504. % fountain blend functions
  505. %
  506. /FBLinear {}bdef
  507. /FBInvLinear {1 exch sub}bdef
  508. /FBLog {9 mul 1 add log}bdef
  509. /FBInvLog {9 mul 1 add log 1 exch sub}bdef
  510. /FBSin {180 mul sin}bdef
  511. /FBInvSin {180 mul sin 1 exch sub}bdef
  512. /FBSaw {2 mul dup 1 gt {2 exch sub}if}bdef
  513. /FBInvSaw {2 mul dup 1 gt {2 exch sub}if 1 exch sub}bdef
  514.  
  515. %
  516. % line end functions
  517. %
  518. /LENone {}bdef
  519. /LERound {0 0 moveto 0 0 .5 -90 90 arc closepath}bdef
  520. /LEArrow {0 0 moveto 0 2 lineto 6 0 lineto 0 -2 lineto closepath}bdef
  521. /LEArrow1 {0 0 moveto 0 2 lineto 6 0 lineto 0 -2 lineto closepath}bdef
  522. /LEArrow2 {0 0 moveto -2 2 lineto 6 0 lineto -2 -2 lineto closepath}bdef
  523. /LEArrow3 {6 0 moveto -3 0 2.31 300 60 arc closepath}bdef
  524. /LEArrow4 {-1 0 moveto -4 2 .5 240 60 arcn 0 0 .5 60 300 arcn -4 -2 .5 300 120 arcn closepath}bdef
  525. /LESpike1 {0 .5 moveto .5 2 lineto 1 .5 lineto 6 0 lineto 1 -.5 lineto .5 -2 lineto 0 -.5 lineto closepath}bdef
  526. /LESpike2 {0 .5 moveto 2 2 lineto 6 0 lineto 2 -2 lineto 0 -.5 lineto closepath}bdef
  527. /LEFeather1 {-2 0 moveto 0 2 lineto 6 2 lineto 4 0 lineto 6 -2 lineto 0 -2 lineto closepath}bdef
  528. /LEFeather2 {0 -2 moveto 0 0 2 270 90 arcn 6 0 2 90 270 arc closepath}bdef
  529. /LEBox {-2 0 moveto -2 2 lineto 2 2 lineto 2 -2 lineto -2 -2 lineto closepath}bdef
  530. /LEDiamond {-2 0 moveto 0 2 lineto 2 0 lineto 0 -2 lineto closepath}bdef
  531. /LEBall {0 0 moveto 0 0 2 360 0 arcn closepath}bdef
  532. /LEEllipse {2 1 scale 0 0 moveto 0 0 2 360 0 arcn closepath}bdef
  533.  
  534. %
  535. % freq angle spot SS -
  536. %
  537. /SS {load setscreen}bdef
  538.  
  539. %
  540. % rfreq rangle rspot gfreq gangle gspot bfreq bangle bspot freq angle spot SCS -
  541. %
  542. /SCS {load 12 3 roll load 12 3 roll load 12 3 roll load 12 3 roll setcolorscreen}bdef
  543.  
  544. %
  545. % text prototypes
  546. %
  547. % (string) F1 -
  548. % (string) kernamt F2 -
  549. % (string) skernamt F3 -
  550. % (string) skernamt kernamt F4 -
  551. %
  552.  
  553. /FS{dup length 1 sub 0 exch 1 exch}bdef
  554. /Fx{1 index exch 1 getinterval dup currentpoint currentpoint newpath moveto 3 -1 roll false charpath FP moveto}bdef
  555. /Sx{1 index exch 1 getinterval dup currentpoint currentpoint newpath moveto 3 -1 roll false charpath SP moveto}bdef
  556.  
  557. /S1{FS {Sx stringwidth rmoveto}for pop}bdef
  558. /S2{/dx xdef FS {Sx stringwidth rmoveto dx 0 rmoveto}for pop}bdef
  559. /S3{/dy xdef FS {Sx dup stringwidth rmoveto ( ) eq {dy 0 rmoveto}if}for pop}bdef
  560. /S4{/dx xdef /dy xdef FS {Sx dup stringwidth rmoveto dx 0 rmoveto ( ) eq {dy 0 rmoveto}if}for pop}bdef
  561.  
  562. /CFx{
  563.  /F1{FS {Fx stringwidth rmoveto}for pop}bdef
  564.  /F2{/dx xdef FS {Fx stringwidth rmoveto dx 0 rmoveto}for pop}bdef
  565.  /F3{/dy xdef FS {Fx dup stringwidth rmoveto ( ) eq {dy 0 rmoveto}if}for pop}bdef
  566.  /F4{/dx xdef /dy xdef FS {Fx dup stringwidth rmoveto dx 0 rmoveto ( ) eq {dy 0 rmoveto}if}for pop}bdef
  567. }bdef
  568.  
  569. %
  570. % c m y k CMYK -
  571. %
  572. /CMYK {
  573.  scmyk
  574.  
  575.  /FP{FILL}bdef
  576.  /EP{EOFILL}bdef
  577.  /SP{STROKE}bdef
  578.  
  579.  patterned {CFx}{
  580.  /F1{show}bdef
  581.  /F2{exch 0 exch ashow}bdef
  582.  /F3{exch 0 exch 32 exch widthshow}bdef
  583.  /F4{0 exch 32 exch 0 6 -1 roll awidthshow}bdef}ifelse
  584. }bdef
  585.  
  586. %
  587. % angle /ramp [c1 m1 y1 k1][c2 m2 y2 k2] CMYKGRAD -
  588. %
  589. /CMYKGRAD{
  590.  /tc2 xdef
  591.  /tc1 xdef
  592.  /ramp exch ldef
  593.  /angle xdef
  594.  
  595.  /FP{{clip} DOGRAD}bdef
  596.  /EP{{eoclip} DOGRAD}bdef
  597.  /SP{strokepath {clip} DOGRAD}bdef
  598.  
  599.  CFx
  600. }bdef
  601.  
  602. %
  603. % dx dy /ramp [c1 m1 y1 k1][c2 m2 y2 k2] CMYKRADIAL -
  604. %
  605. /CMYKRADIAL{
  606.  /tc2 xdef
  607.  /tc1 xdef
  608.  /ramp exch ldef
  609.  /dy xdef
  610.  /dx xdef
  611.  
  612.  /FP{{clip} DORADIAL}bdef
  613.  /EP{{eoclip} DORADIAL}bdef
  614.  /SP{strokepath {clip} DORADIAL}bdef
  615.  
  616.  CFx
  617. }bdef
  618.  
  619. %
  620. % inset /ramp [c1 m1 y1 k1][c2 m2 y2 k2] CMYKSHAPE -
  621. %
  622. /CMYKSHAPE{
  623.  /tc2 xdef
  624.  /tc1 xdef
  625.  /ramp exch ldef
  626.  /xc xdef
  627.  
  628.  /FP{{clip} DOSHAPE}bdef
  629.  /EP{{eoclip} DOSHAPE}bdef
  630.  /SP{strokepath {clip} DOSHAPE}bdef
  631.  
  632.  CFx
  633. }bdef
  634.  
  635. /O`{/dko false def /cko false def}bdef
  636. /K`{/dko true def /cko true def}bdef
  637. /o`{/cko false def}bdef
  638. /k`{/cko dko def}bdef
  639.  
  640. /grayP{
  641.   /striptype 1 def
  642.   /scmyk /SCMYK load def
  643.   /setcmykcolor /SCMYK load def
  644.   /setgray /SG load def
  645. }bdef
  646.  
  647. /colorP{
  648.   /striptype 2 def
  649.   /scmyk /SCMYK load def
  650.   /setcmykcolor /SCMYK load def
  651.   /setgray /SG load def
  652. }bdef
  653.  
  654. /cP{
  655.   /striptype 2 def
  656.   /scmyk {pop pop pop 1 exch sub SG}bdef
  657.   /setcmykcolor {pop pop pop 1 exch sub SG}bdef
  658.   /setgray {pop 1 SG}bdef
  659. }bdef
  660.  
  661. /mP{
  662.   /striptype 2 def
  663.   /scmyk {pop pop 1 exch sub SG pop}bdef
  664.   /setcmykcolor {pop pop 1 exch sub SG pop}bdef
  665.   /setgray {pop 1 SG}bdef
  666. }bdef
  667.  
  668. /yP{
  669.   /striptype 2 def
  670.   /scmyk {pop 1 exch sub SG pop pop}bdef
  671.   /setcmykcolor {pop 1 exch sub SG pop pop}bdef
  672.   /setgray {pop 1 SG}bdef
  673. }bdef
  674.  
  675. /kP{
  676.   /striptype 2 def
  677.   /scmyk {1 exch sub SG pop pop pop}bdef
  678.   /setcmykcolor {1 exch sub SG pop pop pop}bdef
  679.   /setgray /SG load def
  680. }bdef
  681.  
  682. % spotname sP -
  683. /spotP{
  684.   /striptype 3 def
  685.   /spotname xdef
  686.  
  687. %for now
  688.  
  689.   /scmyk /SCMYK load def
  690.   /setcmykcolor /SCMYK load def
  691.   /setgray /SG load def
  692.  
  693. %  /sepcolor xdef
  694. %
  695. %  /scmyk {
  696. %   sepcolor 3 get eq exch
  697. %   sepcolor 2 get eq and exch
  698. %   sepcolor 1 get eq and exch
  699. %   sepcolor 0 get eq and {0 SG}{1 SG}ifelse}bdef
  700. %  sepcolor 3 get 1 eq sepcolor 2 get 0 eq and sepcolor 1 get 0 eq and sepcolor 0 get 0 eq and {/setgray /SG load def}{/setgray {pop 1 SG}bdef}ifelse
  701. }bdef
  702.  
  703. % freq angle /spot setS -
  704. /setS{load /cspot xdef /cangle xdef /cfreq xdef cfreq cangle /cspot load setscreen}bdef
  705.  
  706. % rfreq rangle /rspot gfreq gangle /gspot bfreq bangle /bspot freq angle /spot setCS -
  707. /setCS{
  708. load /cspot xdef /cangle xdef /cfreq xdef
  709. load /cbspot xdef /cbangle xdef /cbfreq xdef 
  710. load /cgspot xdef /cgangle xdef /cgfreq xdef 
  711. load /crspot xdef /crangle xdef /crfreq xdef 
  712. crfreq crangle /crspot load cgfreq cgangle /cgspot load cbfreq cbangle /cbspot load cfreq cangle /cspot load setcolorscreen}bdef
  713.  
  714. %
  715. % #copies BEGINDOCUMENT -
  716. %
  717. /BeginDocument{
  718.  /#copies xdef
  719.  
  720.   7 dict begin
  721.     /FontDict 12 dict def
  722.     FontDict begin
  723.       /key /mypatternfont def
  724.       /patterns 256 array def
  725.       /patterncount 0 def
  726.       /char 0 def
  727.       /mtx [300 72 div 0 0 300 72 div 0 0] matrix invertmatrix def
  728.       /height 30 def
  729.       /width 30 def
  730.       /ctm matrix currentmatrix def
  731.       /ptm matrix identmatrix def
  732.       /str 32 string def
  733.     end
  734.     /FontBBox [0 0 FontDict /width get FontDict /height get] def
  735.     /FontMatrix FontDict /mtx get def
  736.     /Encoding 256 array 0 1 255 {1 index exch dup 3 string cvs cvn put}for def
  737.     /FontType 3 def
  738.     /BuildChar { %def
  739.       exch begin
  740.       FontDict begin
  741.       /char xdef
  742.        width 0 0 0 width height setcachedevice
  743.       width height scale 8 8 true [8 0 0 -8 0 8] {patterns char get}imagemask
  744.       end end
  745.     }def
  746.     FontDict /key get currentdict definefont pop
  747.   end
  748.  
  749.  /dmatrix dmatrix currentmatrix def
  750.  currentscreen /dspot xdef /dangle xdef /dfreq xdef
  751.  
  752.  
  753.  systemdict /currentcolorscreen known
  754.  {currentcolorscreen
  755.   /dspot xdef /dangle xdef /dfreq xdef
  756.   /dbspot xdef /dbangle xdef /dbfreq xdef
  757.   /dgspot xdef /dgangle xdef /dgfreq xdef
  758.   /drspot xdef /drangle xdef /drfreq xdef}if
  759.  
  760. }bdef
  761.  
  762. %
  763. % /newfontname /fontname RE -
  764. %
  765. /RE{
  766.  mark {FontDirectory 3 index get} stopped
  767.  {cleartomark
  768.   findfont dup length 2 add dict begin {1 index /FID ne {def}{pop pop}ifelse}forall
  769.   /FontType load 42 eq {/Encoding PGS42Encoding def}{/Encoding PGSEncoding def}ifelse
  770.   /FontName 1 index def
  771.   currentdict definefont pop
  772.   end
  773.  }
  774.  {cleartomark pop pop}ifelse
  775. }bdef
  776.  
  777. %
  778. % /fontname xscale yscale slant twist F -
  779. %
  780. /F{
  781.  /twist xdef /slant xdef /yscale xdef /xscale xdef
  782.  findfont [xscale 0 0 yscale 0 0] [twist cos twist sin slant sin neg slant cos 0 0] sclm concatmatrix makefont setfont
  783. }bdef
  784.  
  785. %
  786. % - ENDOCUMENT -
  787. %
  788. /EndDocument{% fixes printing extra page with GX
  789. userdict /restore {pop /showpage {} def} bind put
  790. }bdef
  791.  
  792. %
  793. % tilew tileh landscape scaleh scalex paperw paperh BEGINTILE -
  794. %
  795. /BeginTile{
  796.  2 div exch 2 div exch translate
  797.  /tilescaley xdef /tilescalex xdef tilescalex tilescaley scale
  798.  {90 rotate} if
  799.  -2 div exch -2 div exch translate
  800.  
  801.  /tmatrix tmatrix currentmatrix def
  802. }bdef
  803.  
  804. %
  805. % - ENDTILE -
  806. %
  807. /EndTile{
  808.  dmatrix setmatrix
  809. }bdef
  810.  
  811. %
  812. % title left top right bottom THUMBNAILMARKS -
  813. %
  814. /ThumbnailMarks{
  815.  /tiley2 xdef
  816.  /tilex2 xdef
  817.  /tiley1 xdef
  818.  /tilex1 xdef
  819.  /title1 xdef
  820.  
  821.  tmatrix setmatrix
  822.  .5 SG [] 0 setdash 6 setlinewidth 0 setlinejoin 0 setlinecap
  823.  newpath
  824.  tilex1 3 add tiley2 3 sub moveto
  825.  tilex2 3 add tiley2 3 sub lineto
  826.  tilex2 3 add tiley1 3 sub lineto PSstroke
  827.  
  828.  0 SG .3 setlinewidth
  829.  newpath tilex1 tiley1 moveto tilex2 tiley1 lineto tilex2 tiley2 lineto tilex1 tiley2 lineto closepath PSstroke
  830.  
  831.  gsave tilex1 tilex2 add 2 div tiley2 translate 1 tilescalex div 1 tilescaley div scale -2 -6 bv sub translate
  832.  /PGSCourier/Courier RE /PGSCourier findfont 6 scalefont setfont
  833.  0 0 moveto title1 PSshow
  834.  grestore
  835. }bdef
  836.  
  837. %
  838. % left top "BeginPage"
  839. %
  840. /BeginPage{
  841.  tmatrix setmatrix translate 
  842.  /pmatrix pmatrix currentmatrix def
  843. }bdef
  844.  
  845. %
  846. % "EndPage"
  847. %
  848. /EndPage{
  849.  tmatrix setmatrix
  850. }bdef
  851.  
  852. /PPDSetup{countdictstack mark}bdef
  853. /PPDCleanup{stopped cleartomark countdictstack exch sub dup 0 gt{{end}repeat}{pop}ifelse}bdef
  854.  
  855. %
  856. % - "BO" matrix
  857. %
  858. /BO{
  859.  matrix currentmatrix
  860. }bdef
  861.  
  862. %
  863. % slant twist "r" -
  864. %
  865. /r{
  866.  /twist xdef
  867.  /slant xdef
  868.  
  869.  sclm 0 twist cos put sclm 1 twist sin put sclm 2 slant sin neg put sclm 3 slant cos put sclm concat
  870. }bdef
  871.  
  872. %
  873. % aboutx abouty slant twist "R" -
  874. %
  875. /r'{
  876.  /twist xdef
  877.  /slant xdef
  878.  /deltay xdef
  879.  /deltax xdef
  880.  
  881.  deltax deltay translate
  882.  sclm 0 twist cos put sclm 1 twist sin put sclm 2 slant sin neg put sclm 3 slant cos put sclm concat
  883.  deltax neg deltay neg translate
  884. }bdef
  885.  
  886. %
  887. % hscale vscale "s" -
  888. %
  889. /s{scale}bdef
  890.  
  891. %
  892. % xoffset1 yoffset1 hscale vscale xoffset2 yoffset2 "S" -
  893. %
  894. /s'{translate scale neg exch neg exch translate}bdef
  895.  
  896. %
  897. % xoffset yoffset "t" -
  898. %
  899. /t{translate}bdef
  900.  
  901. %
  902. % matrix "EO" -
  903. %
  904. /EO {setmatrix}bdef
  905.  
  906. %
  907. % - BEGINCLIP -
  908. %
  909. /BeginClip {gsave eoclip}bdef
  910.  
  911. %
  912. % - ENDCLIP -
  913. %
  914. /EndClip {grestore}bdef
  915.  
  916. %
  917. % xscale yscale xoffset yoffset pixelw pixelh bitsperpixel BEGINBITMAP -
  918. %
  919. /BeginBitmap {
  920.  save 8 1 roll /bpp xdef /h xdef /w xdef
  921.  scl translate scale /picstr 8 bpp idiv dup w add 1 sub exch idiv string def
  922.  w h bpp [w 0 0 h neg 0 h] {currentfile picstr readhexstring pop}bind image
  923. }bdef
  924.  
  925. %
  926. % xscale yscale xoffset yoffset pixelw pixelh bitsperpixel BEGINRGBBITMAP -
  927. %
  928. /BeginRGBBitmap {
  929.  save 8 1 roll /bpp xdef /h xdef /w xdef
  930.  scl translate scale /picstr 8 bpp idiv dup w 3 mul add 1 sub exch idiv string def
  931.  w h bpp [w 0 0 h neg 0 h] {currentfile picstr readhexstring pop}bind false 3 colorimage
  932. }bdef
  933.  
  934. %
  935. % xscale yscale xoffset yoffset pixelw pixelh bitsperpixel BEGINCMYKBITMAP -
  936. %
  937. /BeginCMYKBitmap {
  938.  save 8 1 roll /bpp xdef /h xdef /w xdef
  939.  scl translate scale /picstr 8 bpp idiv dup w 3 mul add 1 sub exch idiv string def
  940.  w h bpp [w 0 0 h neg 0 h] {currentfile picstr readhexstring pop}bind false 4 colorimage
  941. }bdef
  942.  
  943. %
  944. % xscale yscale xoffset yoffset WHITEBITMAP -
  945. %
  946. /WhiteBitmap {
  947. gsave scl translate scale newpath 0 0 moveto 0 1 lineto 1 1 lineto 1 0 lineto closepath 1 SG fill grestore
  948. }bdef
  949.  
  950. %
  951. % - ENDBITMAP -
  952. %
  953. /EndBitmap {restore}bdef
  954.  
  955. %
  956. % xscalex yscale xoffset yoffset BEGINEPS -
  957. %
  958. /BeginEPS {
  959.  scl translate scale translate
  960.  /PGSEPSSave save def
  961.  /showpage {}bdef
  962.  /dict_count countdictstack def /op_count count 1 sub def
  963.  userdict begin
  964.  newpath 0 setgray 1 setlinewidth [] 0 setdash 0 setlinecap 0 setlinejoin 10 setmiterlimit
  965.  /languagelevel where {pop languagelevel 1 ne {false setstrokeadjust false setoverprint}if }if
  966. }bdef
  967.  
  968. %
  969. % - ENDEPS -
  970. %
  971. /EndEPS {count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat PGSEPSSave restore}bdef
  972.  
  973.  
  974. %
  975. % BEGINFONT -
  976. %
  977. /BeginFONT {/dict_count countdictstack def /op_count count 1 sub def userdict begin}bdef
  978.  
  979. %
  980. % - ENDFONT -
  981. %
  982. /EndFONT {count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat}bdef
  983.  
  984.  
  985. %
  986. % SAVEFONT -
  987. %
  988. /SaveFONT {/PGSFONTSave save def}bdef
  989.  
  990. %
  991. % - RESTOREFONT -
  992. %
  993. /RestoreFONT {PGSFONTSave restore}bdef
  994.  
  995. %
  996. % angle cx cy cropmark -
  997. %
  998. /cropmark {
  999.   gsave translate 1 tilescalex div 1 tilescaley div scale rotate
  1000.   .3 setlinewidth newpath
  1001.   bh 5 add 0 moveto 20 0 rlineto
  1002.   0 bv 5 add moveto 0 20 rlineto
  1003.   PSstroke grestore
  1004. }bdef
  1005.  
  1006. %
  1007. % dx dy cx cy regmark -
  1008. %
  1009. /regmark {
  1010.   gsave translate 1 tilescalex div 1 tilescaley div scale translate
  1011.   .3 setlinewidth newpath
  1012.   10 0 moveto 0 0 10 0 360 arc
  1013.   1 SG PSfill
  1014.   8 0 moveto 0 0 8 0 360 arc
  1015.   -10 0 moveto 10 0 lineto 0 -10 moveto 0 10 lineto
  1016.   0 SG PSstroke
  1017.   4 0 moveto 0 0 4 0 360 arc
  1018.   PSfill
  1019.   -4 0 moveto 4 0 lineto 0 -4 moveto 0 4 lineto
  1020.   1 SG PSstroke
  1021.   grestore
  1022. }bdef
  1023.  
  1024. %
  1025. % dx dy cx cy slurgauge -
  1026. %
  1027. /slurgauge {
  1028.   gsave translate 1 tilescalex div 1 tilescaley div scale translate
  1029.   .3 setlinewidth newpath
  1030.   0 0 10 0 360 arc
  1031.   1 SG PSfill
  1032.   0 0 10 0 360 arc
  1033.   0 SG PSstroke
  1034.   36 { 1 0 moveto 0 0 10 -2.5 2.5 arc PSfill 10 rotate}repeat
  1035.   grestore
  1036. }bdef
  1037.  
  1038. /boxit {newpath moveto 14 0 rlineto 0 -14 rlineto -14 0 rlineto closepath}def
  1039.  
  1040. %
  1041. % angle dx dy cx cy colorstrip -
  1042. %
  1043. /colorstrip {
  1044.   gsave translate 1 tilescalex div 1 tilescaley div scale translate rotate
  1045.  
  1046.   /PGSCourier/Courier RE /PGSCourier findfont 6 scalefont setfont
  1047.  
  1048.   striptype 1 eq {
  1049.     0 8 translate
  1050.     0 1 9 {dup 15 mul 0 boxit 10 div SG PSfill}for
  1051.    }if
  1052.  
  1053.   striptype 2 eq {
  1054.     gsave 320 15 translate
  1055.     0 0 boxit .5 .41 .41 0 scmyk PSfill
  1056.     15 0 boxit 0 0 0 .5 scmyk PSfill
  1057.     30 0 boxit 1 1 0 0 scmyk PSfill
  1058.     45 0 boxit 1 0 1 0 scmyk PSfill
  1059.     60 0 boxit 0 1 1 0 scmyk PSfill
  1060.     75 0 boxit 1 1 1 0 scmyk PSfill
  1061.     1 SG
  1062.     33 -6 moveto (CM) PSshow
  1063.     48 -6 moveto (CY) PSshow
  1064.     63 -6 moveto (MY) PSshow
  1065.     77 -6 moveto (CMY) PSshow
  1066.     grestore
  1067.  
  1068.  
  1069.     0 0 0 1 scmyk -6 9 moveto (K) PSshow
  1070.     0 1 9 {dup 15 mul 15 boxit 10 div 0 0 0 4 -1 roll scmyk PSfill}for
  1071.  
  1072.     1 0 0 0 scmyk -6 -6 moveto (C) PSshow
  1073.     0 1 9 {dup 15 mul 0 boxit 10 div 0 0 0 scmyk PSfill}for
  1074.  
  1075.     0 1 0 0 scmyk 154 9 moveto (M) PSshow
  1076.     0 1 9 {dup 15 mul 160 add 15 boxit 10 div 0 exch 0 0 scmyk PSfill}for
  1077.  
  1078.     0 0 1 0 scmyk 154 -6 moveto (Y) PSshow
  1079.     0 1 9 {dup 15 mul 160 add 0 boxit 10 div 0 0 3 -1 roll 0 scmyk PSfill}for
  1080.  
  1081.    }if
  1082.  
  1083.   striptype 3 eq {
  1084.     320 0 translate
  1085.     0 1 9 {dup 15 mul 0 boxit 10 div SG PSfill}for
  1086.    }if
  1087.  
  1088.   grestore
  1089. }def
  1090.  
  1091. %
  1092. % title1 title2 tilew tileh PRINTERSMARKS -
  1093. %
  1094. /PrintersMarks {
  1095.  /tileh xdef
  1096.  /tilew xdef
  1097.  /title2 xdef
  1098.  /title1 xdef
  1099.  
  1100.  gsave 0 SG [] 0 setdash 0 setlinejoin 0 setlinecap
  1101.  
  1102.  180 0 0 cropmark
  1103.  270 tilew 0 cropmark
  1104.  0 tilew tileh cropmark
  1105.  90 0 tileh cropmark
  1106.  
  1107.  0 15 bv add tilew 2 div tileh regmark
  1108.  0 -15 bv sub tilew 2 div 0 regmark
  1109.  
  1110.  -15 bh sub -15 bv sub 0 0 slurgauge
  1111.  15 bh add 15 bv add tilew tileh slurgauge
  1112.  
  1113.   gsave 1 tilescalex div 1 tilescaley div scale -15 bh sub 8 translate 90 rotate
  1114.   /PGSCourier/Courier RE /PGSCourier findfont 8 scalefont setfont
  1115.   0 0 moveto title1 PSshow
  1116.   0 -8 moveto title2 PSshow (  ) PSshow
  1117.   currentscreen pop exch 20 string cvs PSshow ( lpi  ) PSshow
  1118.   20 string cvs PSshow (\260  ) PSshow
  1119.   tilescalex 100 mul 20 string cvs PSshow (%) PSshow
  1120.   tilescaley tilescalex ne {(,) PSshow tilescaley 100 mul 20 string cvs PSshow (%) PSshow}if
  1121.   grestore
  1122.  
  1123.  90 bh 15 add 15 tilew 0 colorstrip
  1124.  grestore
  1125. }bdef
  1126.  
  1127. % hack around the @#!%$^% laserwriter8 driver bug
  1128. /*def/def load def
  1129. /def {1 index/fcheckload eq{pop{pop pop}}if *def}bdef
  1130.  
  1131. end
  1132. %%EndProlog
  1133.