home *** CD-ROM | disk | FTP | other *** search
/ Archive Magazine 1995 / ARCHIVE95.iso / discs / pipeline / 6_04 / 9301 / Printing / LasJet / !Printers / ps / PSfiles / PSprolog2 < prev    next >
Text File  |  1992-04-23  |  8KB  |  117 lines

  1. %% ==> <PDriver$Dir>.<PDriver$PSprologue2>
  2. %% Main prologue file for the PostScript printer driver module.
  3. %% Version 2.21 first used with version 3.30 of the module
  4. /PDdict 200 dict def PDdict begin/BD{bind def}bind def/LD{load
  5. def}BD/LW/setlinewidth LD/St/stroke LD/T/translate LD/S/save LD/R/restore
  6. LD/GS/gsave LD/GR/grestore LD/CP/clippath LD/Cl/closepath LD/M/moveto
  7. LD/RM/rmoveto LD/L/lineto LD/B/curveto LD/I/index LD/SW/stringwidth
  8. LD/GCF/currentfont LD/GCM/currentmatrix LD/SCM/setmatrix LD/CCM/concatmatrix
  9. LD/ED{exch def}BD/Copies{/#copies ED showpage}BD/MP{400. div}BD/Fb{65536.
  10. div}BD/WM1 matrix def/WM2 matrix def/IM1 matrix def/UM{Fb 4 1 roll Fb 4 1
  11. roll Fb 4 1 roll Fb 4 1 roll 0. 0. WM1 astore concat}BD/Bx{4 copy 5 1 roll 4
  12. 2 roll 5 -1 roll M L L L Cl}BD/Cp{Bx clip newpath}BD/PS{72. 180. div dup
  13. scale newpath Cp[]0. setdash}BD/MC{0. 0. Cp}BD/G{255. div setgray}BD/C{255.
  14. div 3 1 roll 255. div 3 1 roll 255. div 3 1 roll setrgbcolor}BD/Eps 0.1 MP
  15. def/VSt{2 setlinecap 0 setlinejoin 2.000001 setmiterlimit 2. LW 0. Eps
  16. rlineto St}BD/VFl{Cl GS fill GR VSt}BD/Li{M L VSt}BD/Pt{M VSt}BD/Tr{M L L
  17. VFl}BD/Rc{Bx VFl}BD/Pr{6 copy M L L 5 -1 roll 4 -1 roll sub add 4 1 roll
  18. exch sub add exch L VFl}BD/Ln{dup mul exch dup mul add sqrt}BD/Cir{0. 360.
  19. arc}BD/VC{Ln Cir}BD/CS{VC VSt}BD/CF{VC VFl}BD/VA{2 copy Ln 5 1 roll exch
  20. atan 3 1 roll exch atan arc}BD/Ac{VA VSt}BD/Cd{VA VFl}BD/Sc{5 I 5 I M VA
  21. VFl}BD/VE{0. 5 1 roll WM1 astore WM2 GCM exch concat 0. 0. 1. Cir
  22. SCM}BD/ES{VE VSt}BD/EF{VE VFl}BD/Max{2 copy lt{exch}if pop}BD/DM{256. div 6
  23. 1 roll 256. div 6 1 roll Fb 256. div 6 1 roll Fb 256. div 6 1 roll Fb 256.
  24. div 6 1 roll Fb 256. div 6 1 roll WM1 astore concat}BD/SDM{256. div 6 1 roll
  25. 256. div 6 1 roll Fb 6 1 roll Fb 6 1 roll Fb 6 1 roll Fb 6 1 roll 6 copy WM1
  26. astore concat pop pop 0 0 IM1 astore pop}BD/CJ{2 I 0 eq{Fb
  27. setmiterlimit}{pop}ifelse setlinecap setlinejoin}BD/WS 4096 string def/SMat
  28. matrix def/SS{div 3 1 roll div exch scale}BD/SM{1. exch div 0. 0. 1. 0. 0.
  29. SMat astore pop}BD/RC{WS 0 3 I put dup 1 gt{WS 1 3 I put dup 2 gt{WS 2 3 I
  30. put WS 3 3 I put dup 4 gt{WS 4 WS 0 4 getinterval putinterval dup 8 gt{WS 8
  31. WS 0 8 getinterval putinterval dup 16 gt{WS 16 WS 0 16 getinterval
  32. putinterval dup 32 gt{WS 32 WS 0 32 getinterval putinterval dup 64 gt{WS 64
  33. WS 0 64 getinterval putinterval dup 128 gt{WS 128 WS 0 128 getinterval
  34. putinterval dup 256 gt{WS 256 WS 0 256 getinterval putinterval dup 512 gt{WS
  35. 512 WS 0 512 getinterval putinterval dup 1024 gt{WS 1024 WS 0 1024
  36. getinterval putinterval dup 2048 gt{WS 2048 WS 0 2048 getinterval
  37. putinterval}if}if}if}if}if}if}if}if}if}if}if}if pop pop}BD/SR{currentfile
  38. token pop dup 0 gt{WS 0 3 -1 roll getinterval currentfile exch readhexstring
  39. pop}{neg currentfile token pop 1 I RC WS 0 3 -1 roll
  40. getinterval}ifelse}BD/S1{true SMat/SR load imagemask}BD 255 2048 RC/FFs WS 0
  41. 2048 getinterval 2048 string copy def/SF{/WS2 FFs 0 4 I 7 add 8 idiv 4 I mul
  42. getinterval def true SMat{WS2}imagemask}BD/SN{8 SMat/SR load image}BD/TS{1.
  43. exch div exch 1. exch div exch scale}BD/Fn{0.016 div exch 0.016 div exch
  44. dup/fheight ED 0. 0. 3 -1 roll 0. 0. WM1 astore exch findfont exch makefont
  45. setfont}BD/Ul{GS 2 copy Ln ulpos ulthick 2. div sub 256. div fheight mul
  46. exch div dup 2 I neg mul exch 3 I mul RM 2 copy rlineto ulthick 256. div
  47. fheight mul LW 0 setlinecap St GR}BD/AC{3 -1 roll exch sub 3 I length div 4
  48. 1 roll sub 1 I length div 3 1 roll}BD/Tx{M 2 I SW AC ashow}BD/JTx{M 7 I dup
  49. 4 1 roll SW AC pop exch 4 -1 roll add 3 1 roll add 6 -1 roll
  50. awidthshow}BD/UTx{/ulthick ED/ulpos ED M Ul 2 I SW AC
  51. ashow}BD/UJTx{M/ulthick ED/ulpos ED Ul pop pop 7 I dup 4 1 roll SW AC pop
  52. exch 4 -1 roll add 3 1 roll add 6 -1 roll
  53. awidthshow}BD/kload{{ceiling}stopped{aload pop}{0}ifelse}BD/kproc{5 I 5 I RM
  54. 2 I{exch 256 mul  add 2 I exch 2 copy known{WM2 SCM  get kload RM  WM1
  55. SCM}{pop pop}ifelse}{pop pop}ifelse}BD/KTx{WM1 GCM GCF/FontMatrix get exch
  56. WM2 CCM pop M 2 I SW AC GCF/KernData known{GCF/KernData get true}{null
  57. false}ifelse{kproc}4 -1 roll    kshow pop pop pop pop}BD/UKTx{6 2
  58. roll/ulthick ED/ulpos ED 2 copy M   4 2 roll Ul  pop pop KTx}BD/jkproc{5 I 5
  59. I RM 1 I 7 I eq{8 I 8 I RM}if 2 I{exch 256 mul  add 2 I exch 2 copy
  60. known{WM2 SCM  get kload RM  WM1 SCM}{pop pop}ifelse}{pop
  61. pop}ifelse}BD/JKTx{WM1 GCM GCF/FontMatrix get exch WM2 CCM pop M 8 -1 roll
  62. dup 4 1 roll SW AC 5 1 roll exch 4 -1 roll add 3 1 roll add GCF/KernData
  63. known{GCF/KernData get true}{null false}ifelse{jkproc}6 -1 roll  kshow
  64. 7{pop}repeat}BD/UJKTx{2 copy M 6 2 roll/ulthick ED/ulpos ED Ul pop pop
  65. JKTx}BD/cdefs 224 8 mul string def cdefs 127 32 sub 8 mul FFs 0 8
  66. getinterval putinterval/DC{32 sub 8 mul cdefs exch 8 getinterval currentfile
  67. exch readhexstring pop pop}BD/ArcFont dup 6 dict dup begin/FontMatrix[1. 0.
  68. 0. 1. 0. -1.]def/FontType 3 def/FontBBox[0. 0. 1. 1.]def/Encoding 256 array
  69. def 0 1 255{Encoding exch/.notdef put}for/BuildChar{xgap ygap setcharwidth 8
  70. 8 true 8. 0. 0. 8. 0. 0. WM2 astore 5 -1 roll 32 sub 8 mul cdefs exch 8
  71. getinterval imagemask pop}BD end definefont def/V{GS 2 I div/ygap ED 2 I
  72. div/xgap ED 0. 0. 3 -1 roll 0. 0. WM1 astore ArcFont exch makefont setfont M
  73. show GR}BD/DP{sub 3 1 roll sub mul  5 1 roll sub 3 1 roll sub mul 
  74. add}BD/ANG{3 -1 roll sub 3 1 roll  exch sub atan}BD/ACS{dup mul 1 I dup mul
  75. sub sqrt exch atan}BD/CW{7 I 7 I WM1 T pop 4 I 7 I sub 6 I 9 I sub atan WM2
  76. rotate WM1 IM1 CCM 4 I 4 I 3 -1 roll itransform exch pop 0 lt}BD/sph 0
  77. def/spw 0 def/flv false def/flh false def/px0 0 def/py0 0 def/px1 0 def/py1
  78. 0 def/px2 0 def/py2 0 def/tta 0. def/pph 0. def/plA 0. def/plB 0.
  79. def/PAR{dup 0 lt{neg true}{false}ifelse/flv ED/sph ED dup 0 lt{neg
  80. true}{false}ifelse/flh ED/spw ED CW{/py2 ED/px2 ED pop pop/py0 ED/px0 ED/py1
  81. ED/px1 ED/flh flh not def}{pop pop/py2 ED/px2 ED/py1 ED/px1 ED/py0 ED/px0
  82. ED}ifelse/plA px0 px1 sub py0 py1 sub Ln def/plB px1 px2 sub py1 py2 sub Ln
  83. def/tta px0 px1 px1 px2 py0 py1 py1 py2 DP plA plB mul ACS def/pph plB  tta
  84. sin mul def px0 py0 T px0 py0 px1 py1 ANG rotate 1 0 plB tta cos mul pph div
  85. 1 0 0 WM1 astore concat plA spw div pph sph div scale flh{spw 0 T -1 1
  86. scale}if flv{0 sph T 1 -1 scale}if}BD/VALACC 14 dict dup begin/acute 1
  87. def/grave 1 def/circumflex 1 def/dieresis 1 def/ring 1 def/tilde 1 def/breve
  88. 1 def/caron 1 def/cedilla 1 def/dotaccent 1 def/hungarumlaut 1 def/slash 1
  89. def/macron 1 def/ogonek 1 def end def/CKN{2 copy known{get type/arraytype
  90. ne}{pop pop false}ifelse}def/OKA{2 copy known{pop pop false}{dup length dup
  91. 1 gt{string cvs dup 0 1 getinterval cvn exch 1 1 I length 1 sub getinterval
  92. cvn 3 -1 roll dup 2 I CKN exch 3 I CKN and VALACC 2 I known and{true}{pop
  93. pop false}ifelse}{pop pop pop false}ifelse}ifelse}def/RF{findfont false 3 1
  94. roll _RFE}def/_RFE{dup length dict begin{1 I/FID ne{def}{pop
  95. pop}ifelse}forall dup type/arraytype eq{/FontMatrix FontMatrix 3 -1 roll 6
  96. array CCM def}{pop}ifelse dup type/arraytype eq  currentdict/Encoding known
  97. and{/Encoding exch def}{pop}ifelse currentdict end definefont
  98. pop}def/RFE{findfont dup/CharStrings known{RFET1}{_RFE}ifelse}def/RFET1{dup
  99. length 4 add dict begin/CBOX{newpath 0 0 M GS ifm SCM false charpath matrix
  100. SCM pathbbox currentpoint GR}BD/CHEI{CBOX pop pop 4 1 roll pop pop
  101. pop}BD/SRCH{-1 exch/Encoding load   0 1 2 I length 1 sub{2 copy get 3 I eq{4
  102. -1 roll pop 3 1 roll exit}{pop}ifelse}for pop pop dup -1 ne{1 string dup 0 4
  103. -1 roll put true}{pop false false}ifelse}BD/MKACC{SRCH 3 -1 roll SRCH 3 -1
  104. roll and{3 dict begin/letter exch def/accent exch def/ifm/FontMatrix load
  105. matrix invertmatrix def GS matrix SCM letter CBOX 6 2 roll accent CBOX pop
  106. pop 6 -1 roll 7 I sub 3 -1 roll 4 I sub sub 2 div 7 -1 roll 5 -1 roll sub
  107. add 7 1 roll 0 gt{(X)CHEI(x)CHEI 2 copy add 2 div 5 -1 roll le{sub}{pop pop
  108. 0}ifelse 5 1 roll pop pop}{pop pop pop 0 3 1 roll}ifelse GR setcharwidth 0 0
  109. M GS ifm concat letter show GR M    GS ifm concat accent show  GR end}{pop
  110. pop}ifelse pop}BD dup/CharStrings get 0 4 I{2 I exch OKA{pop pop 1
  111. add}if}forall 3 -1 roll{1 I/FID ne 2 I/CharStrings ne and{def}{pop
  112. pop}ifelse}forall 1 I length add dict exch{2 I 3 1 roll put}forall 2 I{2
  113. copy OKA{[3 1 roll/MKACC cvx]cvx 2 I 3 1 roll
  114. put}{pop}ifelse}forall/CharStrings exch def dup type/arraytype
  115. eq{/FontMatrix FontMatrix 3 -1 roll 6 array CCM def}{pop}ifelse/Encoding
  116. exch def currentdict end definefont pop}BD end 
  117.