home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / PROPAGEV1.2-2.DMS / in.adf / Data / psprlg < prev   
Encoding:
Text File  |  1989-04-03  |  12.5 KB  |  553 lines

  1.  
  2. /uniqueid 0 def
  3. /amigavec [
  4. 8#055 /hyphen
  5. 8#230 /dotlessi
  6. 8#231 /grave
  7. 8#232 /acute
  8. 8#233 /circumflex
  9. 8#234 /tilde
  10. 8#235 /dieresis
  11. 8#236 /ring
  12. 8#237 /cedilla
  13. 8#240 /space
  14. 8#244 /currency
  15. 8#246 /bar
  16. 8#250 /dieresis
  17. 8#251 /copyright
  18. 8#252 /ordfeminine
  19. 8#254 /logicalnot
  20. 8#255 /.notdef
  21. 8#256 /registered
  22. 8#257 /macron
  23. 8#260 /ring
  24. 8#261 /.notdef
  25. 8#262 /.notdef
  26. 8#263 /dagger
  27. 8#264 /.notdef
  28. 8#265 /.notdef
  29. 8#267 /bullet
  30. 8#271 /.notdef
  31. 8#272 /ordmasculine
  32. 8#274 /.notdef
  33. 8#275 /.notdef
  34. 8#276 /.notdef
  35. 8#300 /Agrave
  36. 8#301 /Aacute
  37. 8#302 /Acircumflex
  38. 8#303 /Atilde
  39. 8#304 /Adieresis
  40. 8#305 /Aring
  41. 8#306 /AE
  42. 8#307 /Ccedilla
  43. 8#310 /Egrave
  44. 8#311 /Eacute
  45. 8#312 /Ecircumflex
  46. 8#313 /Edieresis
  47. 8#314 /Igrave
  48. 8#315 /Iacute
  49. 8#316 /Icircumflex
  50. 8#317 /Idieresis
  51. 8#320 /.notdef
  52. 8#321 /Ntilde
  53. 8#322 /Ograve
  54. 8#323 /Oacute
  55. 8#324 /Ocircumflex
  56. 8#325 /Otilde
  57. 8#326 /Odieresis
  58. 8#327 /.notdef
  59. 8#330 /Oslash
  60. 8#331 /Ugrave
  61. 8#332 /Uacute
  62. 8#333 /Ucircumflex
  63. 8#334 /Udieresis
  64. 8#335 /.notdef
  65. 8#336 /.notdef
  66. 8#337 /germandbls
  67. 8#340 /agrave
  68. 8#341 /aacute
  69. 8#342 /acircumflex
  70. 8#343 /atilde
  71. 8#344 /adieresis
  72. 8#345 /aring
  73. 8#346 /ae
  74. 8#347 /ccedilla
  75. 8#350 /egrave
  76. 8#351 /eacute
  77. 8#352 /ecircumflex
  78. 8#353 /edieresis
  79. 8#354 /igrave
  80. 8#355 /iacute
  81. 8#356 /icircumflex
  82. 8#357 /idieresis
  83. 8#360 /.notdef
  84. 8#361 /ntilde
  85. 8#362 /ograve
  86. 8#363 /oacute
  87. 8#364 /ocircumflex
  88. 8#365 /otilde
  89. 8#366 /odieresis
  90. 8#367 /.notdef
  91. 8#370 /oslash
  92. 8#371 /ugrave
  93. 8#372 /uacute
  94. 8#373 /ucircumflex
  95. 8#374 /udieresis
  96. 8#375 /.notdef
  97. 8#376 /.notdef
  98. 8#377 /ydieresis
  99. ] def
  100. /dontCopyID false def
  101. /copyfont {
  102.    { exch dup /FID ne
  103.       {
  104.      dup /UniqueID eq dontCopyID and
  105.      {pop pop}
  106.      {
  107.         dup /Encoding eq
  108.         { exch dup length array copy outfontdict 3 1 roll put}
  109.         { exch outfontdict 3 1 roll put}
  110.         ifelse
  111.      }
  112.      ifelse
  113.       }
  114.       { pop pop}
  115.       ifelse
  116.    } forall
  117. } bind def
  118. /recode {
  119.    copyfont dup dup
  120.    outfontdict /FontName 3 -1 roll put
  121.    amigavec aload pop
  122.    amigavec length 2 idiv
  123.    {outfontdict /Encoding get 3 1 roll put} repeat
  124. } bind def
  125. /defamigafont {
  126.    /fntsclmtx [0 0 0 0 0 0] def
  127.    exch
  128.    dup fntsclmtx exch 0 exch put
  129.    neg fntsclmtx exch 3 exch put
  130.    findfont fntsclmtx makefont setfont
  131. } bind def
  132. /deffont  {
  133.    3 -1 roll
  134.    {
  135.       dup dup length dup 5 add string /newnamestr exch def
  136.       exch newnamestr copy pop newnamestr exch (Amiga) putinterval
  137.       newnamestr cvn dup FontDirectory exch known
  138.       {exch pop}
  139.       {
  140.      exch cvn findfont
  141.      dup maxlength dict /outfontdict exch def
  142.      /dontCopyID false def recode
  143.      outfontdict definefont pop
  144.       }
  145.       ifelse
  146.    }
  147.    { cvn }
  148.    ifelse
  149.    defamigafont
  150. } bind def
  151.  
  152. /mvx {
  153.    currentpoint exch pop moveto
  154. } bind def
  155. /mvy {
  156.    currentpoint pop exch moveto
  157. } bind def
  158.  
  159. /MakeOutline {
  160.    3 -1 roll
  161.    {/xtra 8 def /suffix (OutAmiga) def}
  162.    {/xtra 3 def /suffix (Out) def}
  163.    ifelse
  164.    dup dup length dup xtra add string /newnamestr exch def
  165.    exch newnamestr copy pop newnamestr exch suffix putinterval
  166.    newnamestr cvn dup FontDirectory exch known
  167.    {exch pop}
  168.    {
  169.       exch cvn findfont
  170.       dup dup maxlength
  171.       exch /UniqueID known not {1 add} if
  172.       dict /outfontdict exch def
  173.       /dontCopyID true def
  174.       xtra 8 eq {recode}{copyfont dup} ifelse
  175. %      outfontdict /UniqueID uniqueid put
  176. %      /uniqueid uniqueid 1 add def
  177.       outfontdict /PaintType 2 put
  178.       outfontdict /StrokeWidth 1000 36 div put
  179.       outfontdict definefont pop
  180.    } ifelse
  181.    defamigafont
  182. } bind def
  183. /rect 4 array def  % used in dobox
  184. /dorect {
  185.    newpath
  186.    rect aload pop 4 copy moveto 3 1 roll exch lineto
  187.    4 2    roll lineto lineto
  188.    closepath
  189. } bind def
  190.  
  191. /dobox {          %clip trnsp x1 y1 x2 y2 dobox
  192.    rect astore pop
  193.    {} {dorect 1 setgray fill} ifelse
  194.    {dorect clip} if
  195. } bind def
  196.  
  197. /dogreyimage {     % width height xscl yscl x0 y0 dogreyimage
  198.    5 index 1 add 2 idiv string
  199.    /picstr exch def
  200.    translate scale
  201.    4 [1 0 0 1 0 0]
  202.    {currentfile  picstr readhexstring pop }
  203.    image
  204. } bind def
  205.  
  206. /do8greyimage {   % width height xscl yscl x0 y0 do8greyimage
  207.           % same as above, but 8 bits per sample
  208.    5 index string
  209.    /picstr exch def
  210.    translate scale
  211.    8 [1 0 0 1 0 0]
  212.    {currentfile  picstr readhexstring pop }
  213.    image
  214. } bind def
  215.  
  216. /docolorimage { % width height xscl yscl x0 y0 docolorimage
  217.    4 dict begin
  218.      5 index 1 add 2 idiv
  219.      dup /cstr exch string def
  220.      dup /ystr exch string def
  221.      dup /mstr exch string def
  222.      /kstr exch string def
  223.      translate scale
  224.      4 [1 0 0 1 0 0]
  225.      { currentfile cstr readhexstring pop }
  226.      { currentfile mstr readhexstring pop }
  227.      { currentfile ystr readhexstring pop }
  228.      { currentfile kstr readhexstring pop }
  229.      true 4 colorimage
  230.    end
  231. } bind def
  232.  
  233. /bwline {  % linewidth linejoin linecap grey dash 0 bwline
  234.    setdash setgray setlinecap setlinejoin setlinewidth
  235. } bind def
  236.  
  237. /colorline {  %linewidth linejoin linecap c m y k dash 0 colorline
  238.    setdash setcmykcolor setlinecap setlinejoin setlinewidth
  239. } bind def
  240.  
  241. /ellipsedict 2 dict def
  242. ellipsedict /mtrx matrix put
  243.  
  244. /ellipse {        % xr yr angle cx cy  ellipse
  245.    ellipsedict begin
  246.       /savematrix mtrx currentmatrix def
  247.       translate
  248.       rotate
  249.       scale
  250.       0 0 1 0 360 arc
  251.       savematrix setmatrix
  252.    end
  253. } bind def
  254.  
  255. %
  256. % patterned fill....
  257. %
  258. /setuserscreendict 22 dict def
  259. setuserscreendict begin
  260.    /tempctm matrix def
  261.    /temprot matrix def
  262.    /tempscale matrix def
  263.  
  264.    /concatprocs {
  265.       /proc2 exch cvlit def
  266.       /proc1 exch cvlit def
  267.       /newproc proc1 length proc2 length add array def
  268.       newproc 0 proc1 putinterval
  269.       newproc proc1 length proc2 putinterval
  270.       newproc cvx
  271.    } bind def
  272.  
  273.    /resmatrix matrix def
  274.    /findresolution {
  275.       72 0 resmatrix defaultmatrix dtransform
  276.       /yres exch def /xres exch def
  277.       xres dup mul yres dup mul add sqrt
  278.    } bind def
  279. end
  280.  
  281. /setuserscreen {
  282.    setuserscreendict begin
  283.       /spotfunction exch def
  284.       /screenangle exch def
  285.       /cellsize exch def
  286.       /m tempctm currentmatrix def
  287.       /rm screenangle temprot rotate def
  288.       /sm cellsize dup tempscale scale def
  289.       sm rm m m concatmatrix m concatmatrix pop
  290.       1 0 m dtransform /y1 exch def /x1 exch def
  291.       /veclength x1 dup mul y1 dup mul add sqrt def
  292.       /frequency findresolution veclength div def
  293.       /newscreenangle y1 x1 atan def
  294.       m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
  295.      { {neg} /spotfunction load concatprocs /spotfunction exch def
  296.      } if
  297.       frequency newscreenangle /spotfunction load setscreen
  298.    end
  299. } bind def
  300.  
  301. /setpatterndict  18 dict def
  302. setpatterndict begin
  303.    /bitison {
  304.       /ybit exch def /xbit exch def
  305.       /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
  306.       /mask 1 7 xbit 8 mod sub bitshift def
  307.       bytevalue mask and 0 ne
  308.    } bind def
  309. end
  310.  
  311. /bitpatternspotfunction {
  312.    setpatterndict begin
  313.       /y exch def /x exch def
  314.       /xindex x 1 add 2 div bpside mul cvi def
  315.       /yindex y 1 add 2 div bpside mul cvi def
  316.       xindex yindex bitison
  317.       { /onbits onbits 1 add def 1}
  318.       { /offbits offbits 1 add def 0}
  319.       ifelse
  320.    end
  321. } bind def
  322.  
  323. /setpattern {
  324.    setpatterndict begin
  325.       /cellsz exch def
  326.       /angle exch def
  327.       /bwidth exch def
  328.       /bpside exch def
  329.       /bstring exch def
  330.       /onbits 0 def /offbits 0 def
  331.       cellsz angle /bitpatternspotfunction load setuserscreen
  332.       {} settransfer
  333.       offbits offbits onbits add div setgray
  334.    end
  335. } bind def
  336.  
  337. /findid {
  338.     /uniqueid 0 def
  339.     FontDirectory
  340.     {
  341.     exch pop
  342.     dup /UniqueID known
  343.     {
  344.         /UniqueID get dup uniqueid gt
  345.         {/uniqueid exch def}
  346.         {pop}
  347.         ifelse
  348.     }
  349.     {pop}
  350.     ifelse
  351.     }
  352.     forall
  353.     /uniqueid uniqueid 1 add def
  354. } bind def
  355.  
  356. /MakeNarrow {     % basename newname MakeNarrow
  357.    findid
  358.    /newname exch def
  359.    /basename exch def
  360.    /basefontdict basename findfont def
  361.    /newfont basefontdict maxlength dict def
  362.    basefontdict
  363.    {exch dup /FID ne
  364.       {exch newfont 3 1 roll put}
  365.       {pop pop}
  366.       ifelse
  367.    }
  368.    forall
  369.    newfont /FontName newname put
  370.    newfont /FontMatrix basefontdict
  371.    /FontMatrix get [0.82 0 0 1 0 0 ]
  372.       [0 0 0 0 0 0] concatmatrix put
  373.    newfont /UniqueID known
  374.    { newfont /UniqueID uniqueid put}
  375.    if
  376.    newname newfont definefont pop
  377. } def
  378.  
  379. /getpagetype { % width ht orient getpagetype width ht orient pagetype
  380.    dup 0 eq {0}
  381.    {
  382.       3 copy pop
  383.       2 copy 709 le exch 499 le and
  384.       {pop pop 4} {
  385.      2 copy 842 le exch 596 le and
  386.      {pop pop 3} {
  387.         2 copy 792 le exch 612 le and
  388.         {pop pop 1} {
  389.            1008 le exch 612 le and
  390.            {2} {0} ifelse
  391.         } ifelse
  392.      } ifelse
  393.       } ifelse
  394.    } ifelse
  395. } bind def
  396.  
  397. /initoutputpage { % ysize pitch angle width ht orient neg mirror manual #copies ----
  398.    /#copies exch def
  399.    statusdict begin
  400.       statusdict /manualfeed known
  401.       {/manualfeed exch def} {pop} ifelse
  402.       statusdict /mirrorprint known
  403.       {/mirrorprint exch def} {pop} ifelse
  404.       statusdict /negativeprint known
  405.       {/negativeprint exch def} {pop} ifelse
  406.       getpagetype
  407.       dup 0 ne {
  408.      dup 1 eq {
  409.         userdict /letter known
  410.         {letter} {pop 0} ifelse
  411.      } if
  412.      dup 2 eq {
  413.         userdict /legal known
  414.         {legal}  {pop 0} ifelse
  415.      } if
  416.      dup 3 eq {
  417.         userdict /a4 known
  418.         {a4} {pop 0} ifelse
  419.      } if
  420.      dup 4 eq {
  421.         userdict /b5 known
  422.         {b5} {pop 0} ifelse
  423.      } if
  424.       } if
  425.       0 eq statusdict /setpage known and
  426.       {setpage} {pop pop pop} ifelse
  427.    end
  428.    currentscreen 3 1 roll pop pop setscreen
  429.    /pageysize exch def
  430.    findid
  431. } bind def
  432.  
  433. /initcolorpage { % pitch1 angle1 ... pitch4 angle4 ysize width ht orient neg mirror manual #copies epsf----
  434.    commoninit
  435.    12 dict begin
  436.       /ka exch def /kf exch def
  437.       /ba exch def /bf exch def
  438.       /ga exch def /gf exch def
  439.       /ra exch def /rf exch def
  440.       currentcolorscreen
  441.       /kp exch def pop pop
  442.       /bp exch def pop pop
  443.       /gp exch def pop pop
  444.       /rp exch def pop pop
  445.       rf ra /rp load gf ga /gp load bf ba /bp load kf ka /kp load setcolorscreen
  446.    end
  447. } bind def
  448.  
  449. /initbwpage { % pitch angle ysize width ht orient neg mirror manual #copies epsf ----
  450.    commoninit
  451.    currentscreen 3 1 roll pop pop setscreen
  452. } bind def
  453.  
  454. /commoninit { % ysize width ht orient neg mirror manual #copies epsf ----
  455.    {pop pop pop pop pop pop pop}
  456.    {
  457.       /#copies exch def
  458.       statusdict begin
  459.      statusdict /manualfeed known
  460.      {/manualfeed exch def} {pop} ifelse
  461.      statusdict /mirrorprint known
  462.      {/mirrorprint exch def} {pop} ifelse
  463.      statusdict /negativeprint known
  464.      {/negativeprint exch def} {pop} ifelse
  465.      getpagetype
  466.      dup 0 ne {
  467.         dup 1 eq {
  468.            userdict /letter known
  469.            {letter} {pop 0} ifelse
  470.         } if
  471.         dup 2 eq {
  472.            userdict /legal known
  473.            {legal}    {pop 0} ifelse
  474.         } if
  475.         dup 3 eq {
  476.            userdict /a4 known
  477.            {a4} {pop 0} ifelse
  478.         } if
  479.         dup 4 eq {
  480.            userdict /b5 known
  481.            {b5} {pop 0} ifelse
  482.         } if
  483.      } if
  484.      0 eq statusdict /setpage known and
  485.      {setpage} {pop pop pop} ifelse
  486.       end
  487.    }
  488.    ifelse
  489.    /pageysize exch def
  490. } bind def
  491.  
  492. /crop {         % x0 y0 x1 y1 l s crop       - places crop marks...
  493.     2 dict begin
  494.        /spc exch def /len exch def
  495.        gsave initclip newpath
  496.        0.25 setlinewidth 0 setgray
  497.        2 copy moveto 0 spc rmoveto 0 len rlineto 2 copy moveto spc 0 rmoveto len 0 rlineto
  498.        4 2 roll 2 copy moveto 0 spc neg rmoveto 0 len neg rlineto 2 copy moveto spc neg 0 rmoveto len neg 0 rlineto
  499.        4 1 roll exch
  500.        2 copy moveto 0 spc rmoveto 0 len rlineto moveto spc neg 0 rmoveto len neg 0 rlineto
  501.        exch 2 copy moveto spc 0 rmoveto len 0 rlineto moveto 0 spc neg rmoveto 0 len neg rlineto
  502.        stroke grestore
  503.     end
  504. } bind def
  505.  
  506. /cross {   % xc yc len cross
  507.    1 dict begin
  508.       /len exch def
  509.       moveto 0 len -2 div rmoveto 0 len rlineto
  510.       len -2 div dup rmoveto len 0 rlineto
  511.       stroke
  512.    end
  513. } bind def
  514.  
  515. /oneregister {     % xc yc len oneregister
  516.    0 setgray 0.25 setlinewidth
  517.    3 copy 3 copy cross 4 div 0 360 arc fill
  518.    1 setgray 2 div cross
  519. } bind def
  520.  
  521. /register {        % x0 y0 x1 y1 l s register
  522.     6 dict begin
  523.        gsave
  524.        /spc exch def /len exch def
  525.        /y1 exch def /x1 exch def /y0 exch def /x0 exch def
  526.        x1 x0 add 2 div y0 spc sub len 2 div sub len oneregister
  527.        x1 x0 add 2 div y1 spc len 2 div add add len oneregister
  528.        x0 spc sub len 2 div sub y1 y0 add 2 div len oneregister
  529.        x1 spc len 2 div add add y1 y0 add 2 div len oneregister
  530.        grestore
  531.     end
  532. } bind def
  533.  
  534. /Helvetica /Helvetica-Narrow MakeNarrow
  535. /Helvetica-Bold /Helvetica-Narrow-Bold MakeNarrow
  536. /Helvetica-Oblique /Helvetica-Narrow-Oblique MakeNarrow
  537. /Helvetica-BoldOblique /Helvetica-Narrow-BoldOblique MakeNarrow
  538.  
  539. % *********************************************************************
  540.  
  541. /initpage {
  542.    gsave
  543.    0 pageysize translate
  544.    0.96 -0.96 scale
  545. } bind def
  546.  
  547. /endpage {
  548.    grestore
  549. } bind def
  550.  
  551. %%EndProlog
  552.  
  553.