home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD2.bin / bbs / biz / pgsprinters-930726.lha / PGSprinters / PostScript.Prolog < prev    next >
Text File  |  1993-07-26  |  17KB  |  844 lines

  1. %%BeginProlog
  2. % $VER: 2.2.11 06/15/92
  3. %Copyright 1991-1992 Soft-Logik Publishing Corp.
  4.  
  5. /AsphaltDict dup 153 dict def load begin
  6.  
  7. %
  8. % some definitions & variables
  9. %
  10. /bdef {bind def} bind def
  11. /xdef {exch def} bdef
  12. /ldef {load def} bdef
  13. /SG /setgray ldef
  14. /dmatrix matrix def
  15. /cmatrix matrix def
  16. /omatrix matrix def
  17.  
  18. /deltax 0 def
  19. /deltay 0 def
  20. /slant 0 def
  21. /twist 0 def
  22. /xscl 0 def
  23. /yscl 0 def
  24. /eang 0 def
  25. /bang 0 def
  26. /NwScrn false def
  27.  
  28. %
  29. % drawing definitions
  30. %
  31.  
  32. /sclm [0 0 0 0 0 0] def
  33. /setscl {
  34.   /deltay exch neg def
  35.   /deltax exch neg def
  36.   100 div /twist xdef
  37.   100 div /slant xdef
  38.   cmatrix setmatrix deltax neg deltay neg translate
  39.   sclm 0 twist cos put
  40.   sclm 1 twist sin put
  41.   sclm 2 slant sin neg put
  42.   sclm 3 slant cos put
  43.   sclm concat
  44.   /omatrix omatrix currentmatrix def
  45. } bdef
  46.  
  47. /scl {
  48.  deltay add exch
  49.  deltax add exch
  50.  transform round .2 add exch round .2 add exch itransform
  51. } bdef
  52.  
  53. /NW {newpath} bdef
  54. /MT {scl moveto} bdef
  55. /LT {scl lineto} bdef
  56. /CRV {scl 6 2 roll scl 6 2 roll scl 6 2 roll curveto} bdef
  57.  
  58. /AT {
  59.   100 div /eang xdef 100 div /bang xdef
  60.   /yscl xdef /xscl xdef scl translate
  61.   xscl yscl scale 0 0 1 bang eang
  62.   arc omatrix setmatrix
  63. } bdef
  64.  
  65. /AN {
  66.   100 div /eang xdef 100 div /bang xdef
  67.   /yscl xdef /xscl xdef scl translate
  68.   xscl yscl scale 0 0 1 bang eang
  69.   arcn omatrix setmatrix
  70. } bdef
  71.  
  72. /CP {closepath} bdef
  73.  
  74. /LTYPE {0 setdash setlinewidth} bdef
  75.  
  76. %
  77. % - BeginDoc -
  78. %
  79. /BeginDoc {
  80.   7 dict begin
  81.     /FontDict 12 dict def
  82.     FontDict begin
  83.       /cache true def
  84.       /key /mypatternfont def
  85.       /patterns 256 array def
  86.       /patterncount 1 def
  87.       /char 1 def
  88.       /mtx [300 72 div 0 0 300 72 div 0 0] matrix invertmatrix def
  89.       /height 30 def
  90.       /width 30 def
  91.       /ctm matrix currentmatrix def
  92.       /ptm matrix identmatrix def
  93.       /str ( ) def
  94.     end
  95.     /FontBBox [0 0 FontDict /width get FontDict /height get] def
  96.     /FontMatrix FontDict /mtx get def
  97.     /Encoding 256 array 0 1 255 {1 index exch dup put} for def
  98.     /FontType 3 def
  99.     /BuildChar { %def
  100.       exch begin
  101.       FontDict begin
  102.       /char xdef
  103.       cache
  104.         {width 0 0 0 width height setcachedevice}
  105.         {width 0 setcharwidth}
  106.       ifelse
  107.       width height scale 16 16 true [16 0 0 -16 0 16] {patterns char get} imagemask
  108.       end end
  109.     } def
  110.     FontDict /key get currentdict definefont pop
  111.   end
  112.  
  113. }bdef
  114.  
  115. %
  116. % angle cx cy cropmark -
  117. %
  118. /cropmark {
  119.   gsave translate rotate
  120.   newpath
  121.   bh 6 add 0 moveto 20 0 rlineto
  122.   0 bv 6 add moveto 0 20 rlineto
  123.   stroke grestore
  124. } bdef
  125.  
  126. %
  127. % cx cy regmark -
  128. %
  129. /regmark {
  130.   gsave translate
  131.   newpath
  132.   10 0 moveto 0 0 10 0 360 arc
  133.   1 SG fill
  134.   8 0 moveto 0 0 8 0 360 arc
  135.   -10 0 moveto 10 0 lineto 0 -10 moveto 0 10 lineto
  136.   0 SG stroke
  137.   4 0 moveto 0 0 4 0 360 arc
  138.   fill
  139.   -4 0 moveto 4 0 lineto 0 -4 moveto 0 4 lineto
  140.   1 SG stroke
  141.   grestore
  142. } bdef
  143.  
  144. %
  145. % cx cy slurgauge -
  146. %
  147. /slurgauge {
  148.   gsave translate
  149.   newpath
  150.   0 0 10 0 360 arc
  151.   1 SG fill
  152.   0 0 10 0 360 arc
  153.   0 SG stroke
  154.   36 { 1 0 moveto 0 0 10 -2.5 2.5 arc fill 10 rotate} repeat
  155.   grestore
  156. } bdef
  157.  
  158. %
  159. % string cx cy label -
  160. %
  161. /label {
  162.   gsave translate 90 rotate
  163.   /Courier findfont 8 scalefont setfont
  164.   0 0 moveto show
  165.   0 -8 moveto
  166.   currentscreen pop exch 20 string cvs show ( lpi  ) show
  167.   20 string cvs show (\312   ) show
  168.   docscale 20 string cvs show (%) show
  169.   grestore
  170. } bdef
  171.  
  172. %
  173. % angle cx cy colorstrip -
  174. %
  175. /boxit {newpath moveto 14 0 rlineto 0 -14 rlineto -14 0 rlineto closepath} def
  176.  
  177. /colorstrip {
  178.   gsave translate rotate
  179.   /Courier findfont 6 scalefont setfont
  180.  
  181.   psepmode 0 eq {
  182.     0 8 translate
  183.     0 1 9 {dup 15 mul 0 boxit 10 div SG fill} for
  184.    }if
  185.  
  186.   psepmode 1 eq {
  187.     gsave 320 15 translate
  188.     0 0 boxit .5 .41 .41 0 setcmykcolor fill
  189.     15 0 boxit 0 0 0 .5 setcmykcolor fill
  190.     30 0 boxit 1 1 0 0 setcmykcolor fill
  191.     45 0 boxit 1 0 1 0 setcmykcolor fill
  192.     60 0 boxit 0 1 1 0 setcmykcolor fill
  193.     75 0 boxit 1 1 1 0 setcmykcolor fill
  194.     1 SG
  195.     33 -6 moveto (CM) show
  196.     48 -6 moveto (CY) show
  197.     63 -6 moveto (MY) show
  198.     77 -6 moveto (CMY) show
  199.     grestore
  200.  
  201.     
  202.     pblack 0 ne {0 15 translate (K)} if
  203.     pcyan 0 ne {0 0 translate (C)} if
  204.     pmagenta 0 ne {160 15 translate (M)} if
  205.     pyellow 0 ne {160 0 translate (Y)} if
  206.     -6 -6 moveto 0 SG show
  207.  
  208.     0 1 9 {dup 15 mul 0 boxit 10 div SG fill} for
  209.    }if
  210.  
  211.   psepmode 2 eq {
  212.     320 0 translate
  213.     0 1 9 {dup 15 mul 0 boxit 10 div SG fill} for
  214.    }if
  215.  
  216.   grestore
  217. } def
  218.  
  219. %
  220. % tilestring sepmode cyan magenta yellow black
  221. % negative mirror cropmarks manualfeed landscape scale
  222. % documentwidth documentheight paperw paperh tilex tiley tilew tileh
  223. % bh bv frequency angle copies iseps BEGINTILE
  224. %
  225. /begintile {
  226.   /iseps xdef
  227.   /#copies xdef
  228.   /cangle xdef
  229.   /cfreq xdef
  230.   /bv xdef
  231.   /bh xdef
  232.   /tileh xdef
  233.   /tilew xdef
  234.   /tiley xdef
  235.   /tilex xdef
  236.   /paperh xdef
  237.   /paperw xdef
  238.   /doch xdef
  239.   /docw xdef
  240.   /docscale xdef
  241.   /landscape xdef
  242.   /manual xdef
  243.   /cropmarks xdef
  244.   /mirror xdef
  245.   /negative xdef
  246.   /pblack xdef
  247.   /pyellow xdef
  248.   /pmagenta xdef
  249.   /pcyan xdef
  250.   /psepmode xdef
  251.   /tilename xdef
  252.  
  253.   /dmatrix dmatrix currentmatrix def
  254.  
  255.   bh 0 ge {/bleed true def}{/bleed false def /bh 0 def /bv 0 def}ifelse
  256.  
  257.   iseps {
  258.    /cropmarks false def
  259.    /bleed false def /bh 0 def bv 0 def
  260.    /mirror false def
  261.    /negative false def
  262.    /manual false def
  263.   }
  264.   {
  265.    statusdict /setpageparams known
  266.     {
  267.      mirror {statusdict /mirrorprint known {statusdict /mirrorprint true put /mirror false def}if }if
  268.      negative {statusdict /negativeprint known {statusdict /negativeprint true put /negative false def}if }if
  269.      statusdict begin tileh tilew cropmarks {72 add exch 72 add exch}if 0 0 setpageparams end
  270.     }
  271.     {
  272.      paperw 612 eq paperh 1008 eq and {/legal where{pop legal}if} if
  273.      paperw 612 eq paperh 792 eq and {/letter where{pop letter}if} if
  274.     } ifelse
  275.   } ifelse
  276.  
  277.   /leftclip paperw tilew cropmarks {72 add bh 2 mul add}if sub 2 div def
  278.   /topclip paperh tileh cropmarks {72 add bv 2 mul add}if sub 2 div def
  279.   leftclip topclip translate
  280.  
  281.   mirror {docw 0 translate -1 1 scale} if
  282.   negative {{1 exch sub} settransfer newpath clippath 1 SG fill} if
  283.   manual {statusdict /manualfeed known {statusdict /manualfeed true put}if }if
  284.   tilex neg tiley neg translate
  285.  
  286.   currentscreen /dproc xdef /dangle xdef /dfreq xdef
  287.   /dtrans currenttransfer def
  288.  
  289.   cangle 10000 gt {/cangle dangle def} if
  290.   cfreq 10000 gt {/cfreq dfreq def} if
  291.   cfreq cangle /dproc load setscreen
  292.  
  293.  
  294.  psepmode 0 eq {systemdict /setcmykcolor known not
  295.    {/setcmykcolor
  296.     {1 sub 4 1 roll 3 {3 index add neg dup 0 lt{pop 0}if 3 1 roll}
  297.      repeat setrgbcolor pop} bdef}if
  298.    /setgray /SG load def
  299.  } if
  300.  psepmode 1 eq {
  301.   pcyan 0 ne {/setcmykcolor {pop pop pop 1 exch sub SG}bdef /setgray {pop 1 SG}bdef } if
  302.   pmagenta 0 ne {/setcmykcolor {pop pop 1 exch sub SG pop}bdef /setgray {pop 1 SG}bdef } if
  303.   pyellow 0 ne {/setcmykcolor {pop 1 exch sub SG pop pop}bdef /setgray {pop 1 SG}bdef } if
  304.   pblack 0 ne {/setcmykcolor {1 exch sub SG pop pop pop}bdef /setgray /SG load def } if
  305.  } if
  306.  psepmode 2 eq {/setcmykcolor {
  307.   pblack 10000 div eq exch
  308.   pyellow 10000 div eq and exch
  309.   pmagenta 10000 div eq and exch
  310.   pcyan 10000 div eq and {0 SG}{1 SG}ifelse}bdef
  311.   pblack 10000 eq pyellow 0 eq and pmagenta 0 eq and pcyan 0 eq and
  312.    {/setgray /SG load def}{/setgray {pop 1 SG} bdef} ifelse
  313.  } if
  314.  
  315.  
  316.   cropmarks {
  317.     mirror {bh 36 add neg bv 36 add translate}{bh 36 add bv 36 add translate}ifelse
  318.     gsave
  319.     0 SG [] 0 setdash .3 setlinewidth 0 setlinejoin 0 setlinecap
  320.  
  321.     180 tilex tiley cropmark
  322.     270 tilex tilew add tiley cropmark
  323.     0 tilex tilew add tiley tileh add cropmark
  324.     90 tilex tiley tileh add cropmark
  325.  
  326.     tilew 2 div tilex add 18 tiley add tileh add bv add regmark
  327.     tilew 2 div tilex add -18 tiley add bv sub regmark
  328.  
  329.     tilex bh sub 18 sub tiley bv sub 18 sub slurgauge
  330.     tilex tilew add bh add 18 add tiley tileh add bv add 18 add slurgauge
  331.  
  332.     tilename tilex bh sub 18 sub tiley 18 add label
  333.  
  334.     90 tilex tilew add bh add 18 add tiley 18 add colorstrip
  335.  
  336.     grestore
  337.   } if
  338.  
  339.   bleed {
  340.     tilex bh sub tiley bv sub moveto
  341.     tilex tilew add bh add tiley bv sub lineto
  342.     tilex tilew add bh add tiley tileh add bv add lineto
  343.     tilex bh sub