From: fred@cs.tu-berlin.DE (Reinhard Arlt)
Subject: Re: Magic number on possible changes of fontmap in 2.5.2???
Organization: GNUs Not Usenet
Distribution: gnu
Date: Fri, 8 Jan 1993 11:03:28 GMT

Peter,

thanks again in advance

Fred (Reinhard Arlt)


The required pscriptd.ini:

%!PS-Adobe-2.0 ExitServer
%%Title: Microsoft Word Driver Prolog (Version D)
%%Creator: Microsoft
%%CreationDate: 27. September 1990
%%BeginDocument: Microsoft Word 5.x 0
%%msinifile: PSCRIPTD
%%EndComments
userdict /msinifile known
{msinifile (PSCRIPTD) eq {stop} if} if
%%BeginExitServer: 0
  serverdict begin 0 exitserver
%%EndExitServer
userdict /msorigstate known {msorigstate restore} if
save /msorigstate exch def
/msinifile (PSCRIPTD) def

/PSl {msdict begin msinit /landscape true def /ptop 612 def 90 rotate} def
/PSp {msdict begin msinit /landscape false def /ptop 792 def} def

%%BeginFont: mslinedraw
/mslinedraw 25 dict def
mslinedraw begin
/FontType 3 def
/FontMatrix [1.0 30.0 div 0 0 1.0 30.0 div 0 0] def
/FontBBox [0 -8 18 30] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
Encoding 45 [
 /sh   /sh   /sh /light /med /dark
 /sv   /srj  /sdjr /dsjr /sdtr /dstr /djr  /dv
 /dtr  /dbr  /sdbr /dsbr /str  /sbl  /sjb  /sjt
 /sjl  /sh   /sjc  /sdjl /dsjl /dbl  /dtl  /djb
 /djt  /djl  /dh   /djc  /dsjb /sdjb /dsjt /sdjt
 /sdbl /dsbl /dstl /sdtl  /sdjc /dsjc /sbr  /stl
 /black /bb /bl /br /bt] putinterval

/pl {transform 0.1 sub round 0.1 add exch
 0.1 sub round 0.1 add exch itransform} bind def
/moveto {pl moveto} bind def
/lineto {pl lineto} bind def

/a {moveto lineto stroke} bind def
/b {moveto lineto lineto stroke} bind def
/c {moveto 9 7 lineto stroke} bind def
/d {moveto lineto lineto} bind def
/e {lineto closepath fill} bind def
/f {7 22 7 9 0 9 b} def
/g {12 22 12 9 18 9 b} def
/h {7 -8 7 5 0 5 b} def
/i {12 -8 12 5 18 5 b} def
/j {0 7 18 7 a} def
/k {9 22 9 -8 a} def
/l {0 5 18 5 a 0 9 18 9 a} def
/m {7 22 7 -8 a 12 22 12 -8 a} def
/n {0 -8 18 -8 18 22 d 0 22 e} def

/CharProcs 55 dict def
CharProcs begin
/.notdef {} def
/sp { 1 1 moveto } def
/sv {k} def
/srj {k 0 7 c} def
/sdjr {k 0 5 9 5 a 0 9 9 9 a} def
/dsjr {m 0 7 7 7 a} def
/sdtr {0 7 12 7 12 -8 b 7 7 7 -8 a} def
/dstr {0 9 9 9 9 -8 b 0 5 9 5 a} def
/djr {f h 12 -8 12 22 a} def
/dv {m} def
/dtr {h 0 9 12 9 12 -8 b} def
/dbr {f  0 5 12 5 12 22 b} def
/sdbr {0 7 12 7 12 22 b 7 7 7 22 a} def
/dsbr {0 5 9 5 9 22 b 0 9 9 9 a} def
/str {0 7 9 7 9 -8 b} def
/sbl {9 22 9 7 18 7 b} def
/sjb {j 9 22 c} def
/sjt {j 9 -8 c} def
/sjl {k 18 7 c} def
/sh {j} def
/sjc {j k} def
/sdjl {k 9 9 18 9 a 9 5 18 5 a} def
/dsjl {m 12 7 18 7 a} def
/dbl {g 7 22 7 5 18 5 b} def
/dtl {i 7 -8 7 9 18 9 b} def
/djb {f g 0 5 18 5 a} def
/djt {h i 0 9 18 9 a} def
/djl {g i 7 -8 7 22 a} def
/dh {l} def
/djc {f g h i} def
/dsjb {l 9 22 9 9 a} def
/sdjb {j 7 7 7 22 a 12 7 12 22 a} def
/dsjt {l 9 -8 9 5 a} def
/sdjt {j 7 7 7 -8 a 12 7 12 -8 a} def
/sdbl {7 22 7 7 18 7 b 12 22 12 7 a} def
/dsbl {9 22 9 5 18 5 b 9 9 18 9 a} def
/dstl {9 -8 9 9 18 9 b 9 5 18 5 a} def
/sdtl {7 -8 7 7 18 7 b 12 -8 12 7 a} def
/sdjc {m j} def
/dsjc {l k} def
/sbr {0 7 9 7 9 22 b} def
/stl {9 -8 9 7 18 7 b} def
/light {0.90 setgray n} def
/med {0.60 setgray n} def
/dark {0.30 setgray n} def
/black {n} def
/bt {0 7 18 7 18 22 d 0 22 e} def
/bb {0 -8 18 -8 18 7 d 0 7 e} def
/bl {0 -8 9 -8 9 22 d 0 22 e} def
/br {9 -8 18 -8 18 22 d 9 22 e} def
end %CharProcs

/BuildChar
  { fs 1 and 0 eq {1} {3} ifelse setlinewidth
    18 0 setcharwidth
    exch begin
     Encoding exch get
     CharProcs exch get
     exec
    end
  } def
end %mslinedraw
%%EndFont

FontDirectory /LineDraw known not
 {/LineDraw mslinedraw definefont pop} if

%%BeginProcSet: msdict 1.5 0
/msdict 120 dict def
msdict begin
/PSe {end} def
/SLL {pop} def
/P {exch msu exch msu neg ptop add moveto} bind def
/S {sw 0 32 4 -1 roll widthshow} bind def
/C {1 string dup 0 4 -1 roll put S} bind def
/J {msu ( ) stringwidth pop sub /sw exch def} bind def
/PE {showpage ptop exch restore save exch /ptop exch def} def
/SFL {landscape {dup msu neg 0 exch translate} if
 msu /ptop exch def save} def
/B1 {statusdict begin papertray 1 ne {1 setpapertray end} {end} ifelse} def
/B2 {statusdict begin papertray 2 ne {2 setpapertray end} {end} ifelse} def
/B3 {statusdict begin papertray 3 ne {3 setpapertray end} {end} ifelse} def
/BENV {} def
%%BeginModelCheck
statusdict begin product end dup length string cvs /msprod exch def
msprod (OmniLaser) eq msprod (RX7100PS) eq or msprod (MT Publishing System) eq or msprod (OL840) eq or msprod (QMS-PS 410) eq or
 {/B1 {statusdict begin papertray 0 ne {0 setpapertray end} {end} ifelse} def
  /B2 {statusdict begin papertray 1 ne {1 setpapertray end} {end} ifelse} def
  /B3 {} def
  /BENV {} def} if
msprod (IBM LaserPrinter) eq msprod 0 2 getinterval (HP) eq or
 {/B1 {statusdict begin papertray 0 ne {0 setpapertray end} {end} ifelse} def
  /B2 {statusdict begin papertray 1 ne {1 setpapertray end} {end} ifelse} def
  /B3 {} def
  /BENV {statusdict begin papertray 2 ne {2 setpapertray end} {end} ifelse} def} if
msprod (IBM Personal Page Printer II) eq
 {/B1 {statusdict begin papertray 1 ne {1 setpapertray end} {end} ifelse} def
  /B2 {statusdict begin papertray 2 ne {2 setpapertray end} {end} ifelse} def
  /B3 {} def
  /BENV {statusdict begin papertray 3 ne {3 setpapertray end} {end} ifelse} def} if
% Add other printer specific tray orderings here.
%%EndModelCheck
/MB {statusdict begin /manualfeed true store end} def
/ME {statusdict begin /manualfeed false store end} def
/DB {statusdict begin true setduplexmode end} def
/DE {statusdict begin false setduplexmode end} def
/B {fs 2 and 0 eq {Bft} {BIft} ifelse
 ftsz scalefont setfont fs 1 or /fs exch def} bind def
/I {fs 1 and 0 eq {Ift} {BIft} ifelse
 ftsz scalefont setfont fs 2 or /fs exch def} bind def
/BI {BIft ftsz scalefont setfont fs
 2 or 1 or /fs exch def} bind def
/E {Eft ftsz scalefont setfont /fs 0 def} bind def
/F {/ftsz exch def (-) stringwidth pop 2 div neg /STh exch def
 /ftcd exch def 0 2 fonttable length 1 sub {dup fonttable exch
 get ftcd eq {1 add fonttable exch get fontset exit} {pop}
 ifelse} for E} bind def
/LU {currentpoint /uy exch def /ux exch def 1 ssm} bind def
/LD {currentpoint /uy exch def /ux exch def 2 ssm} bind def
/LS {currentpoint /suy exch def /sux exch def 4 ssm} bind def
/LL {currentpoint /luy exch def /lux exch def /ldmode exch def 8 ssm} bind def
/LE {smode 1 and 0 ne {false (_) ul} if
     smode 2 and 0 ne {true (_) ul} if
     smode 4 and 0 ne {false (\352) ul} if
     smode 8 and 0 ne {lux luy ldot pop pop} if
     not smode and /smode exch def} bind def
/BD {STh ssc} bind def
/BU {STh neg ssc} bind def
/BN {0 ssy neg rmoveto} bind def

/msinit {/sw 0 def /ftsz 12 def /smode 0 def /STh -3.6 def /fs 0 def
 /offset 0 def /ldsp 8 def fonttable 1 get fontset E initmatrix
 statusdict begin /waittimeout 360 def end} def
/fontset {dup 0 get findfont /Eft exch def dup 1 get findfont /Bft exch
 def dup 2 get findfont /Ift exch def 3 get findfont /BIft exch def} def
/msu {20 div} bind def
/ssc {dup /ssy exch def 0 exch rmoveto} bind def
/ssm {dup smode or /smode exch def} bind def
/dul {cc true charpath pathbbox newpath exch pop 2 copy exch sub
 2 mul /dulsp exch def 2 index 2 index moveto cx1 4 -1 roll sub
 dup 0 rlineto 3 1 roll exch sub 0 exch rlineto neg 0 rlineto
 closepath fill} bind def
/ul {gsave /cc exch def currentpoint pop /cx1 exch def smode 4 ne
 {ux uy} {sux suy} ifelse moveto dul {grestore gsave smode 4 ne
 {ux uy} {sux suy} ifelse dulsp 2 gt {dulsp} {dulsp 2 mul} ifelse sub
 moveto dul} if grestore} bind def
/lsetup {x ldsp div round cvi ldsp mul /x exch def lux ldsp div
 round cvi ldsp mul /lux exch def lux ldsp 2 div add luy moveto
 x lux sub ldsp div cvi} bind def
/ldot {gsave 2 copy currentpoint /y exch def /x exch def
 newpath
 ldmode 0 eq {1 setlinewidth 1 setlinecap x lsetup
              {0 0 rlineto ldsp 0 rmoveto} repeat stroke pop pop pop}
 {ldmode 1 eq {.2 setlinewidth lsetup 1 sub 0 (M) stringwidth pop 2.5
               div rmoveto {ldsp 2 sub 0 rlineto 2 0 rmoveto} repeat
               stroke pop pop}
 {ldmode 2 eq {[] 0 setdash /offset 1.4 def .2 setlinewidth
               offset sub moveto x y offset sub lineto stroke} if}
 ifelse} ifelse grestore} def
% /OrigName /NewName Foreign
/Foreign {
  exch findfont begin
  currentdict dup length dict begin
    { 1 index /FID ne {def} {pop pop} ifelse } forall
    /FontName exch def
    /Encoding foreignvec def
  currentdict dup end end
  /FontName get exch definefont pop
} bind def

/foreignvec StandardEncoding 256 array copy def
% the following are differences from StandardEncoding.
% Sequential entries do not require indices:
0 [ 20/paragraph/section 39/quotesingle 96/grave
128/Ccedilla/udieresis/eacute/acircumflex/adieresis/agrave/aring/ccedilla
/ecircumflex/edieresis/egrave/idieresis/icircumflex/igrave/Adieresis/Aring
/Eacute/ae/AE/ocircumflex/odieresis/ograve/ucircumflex/ugrave/ydieresis
/Odieresis/Udieresis/cent/sterling/yen/P/florin/aacute/iacute/oacute/uacute
/ntilde/Ntilde/ordfeminine/ordmasculine/questiondown/.notdef/.notdef/half
/quarter/exclamdown/guillemotleft/guillemotright/Aacute/Acircumflex/Agrave
/Atilde/Ecircumflex/Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave
/Oacute/Ocircumflex/Ograve/Otilde/Uacute/Ucircumflex/Ugrave/Scaron
/Ydieresis/emdash/Zcaron/.notdef/otilde/scaron/zcaron/fraction/section
/currency/quotesingle/quotedblleft/guilsinglleft/guilsinglright/quoteleft
/quoteright/endash/dagger/daggerdbl/paragraph/quotesinglbase/quotedblbase
/quotedblright/ellipsis/.notdef/grave/acute/circumflex/tilde/macron
/germandbls/breve/dotaccent/dieresis/cedilla/.notdef/hungarumlaut/ogonek
/caron/emdash/Lslash/Oslash/dotlessi/lslash/oslash/.notdef/.notdef/.notdef
/.notdef/.notdef/atilde/.notdef/.notdef/ring/bullet/periodcentered/.notdef
/.notdef/.notdef/.notdef/.notdef
] {dup type /nametype eq {dup /Courier findfont /CharStrings get
   exch known not {pop /.notdef} if foreignvec 2 index 2 index put
   pop 1 add} {exch pop} ifelse
  } forall pop

%%BeginMakeForeign
/Courier /Courier-F Foreign
/Courier-Bold /Courier-Bold-F Foreign
/Courier-Oblique /Courier-Oblique-F Foreign
/Courier-BoldOblique /Courier-BoldOblique-F Foreign
/Helvetica /Helvetica-F Foreign
/Helvetica-Bold /Helvetica-Bold-F Foreign
/Helvetica-Oblique /Helvetica-Oblique-F Foreign
/Helvetica-BoldOblique /Helvetica-BoldOblique-F Foreign
/AvantGarde-Book /AvantGarde-Book-F Foreign
/AvantGarde-Demi /AvantGarde-Demi-F Foreign
/AvantGarde-BookOblique /AvantGarde-BookOblique-F Foreign
/AvantGarde-DemiOblique /AvantGarde-DemiOblique-F Foreign
/Helvetica-Narrow /Helvetica-Narrow-F Foreign
/Helvetica-Narrow-Bold /Helvetica-Narrow-Bold-F Foreign
/Helvetica-Narrow-Oblique /Helvetica-Narrow-Oblique-F Foreign
/Helvetica-Narrow-BoldOblique /Helvetica-Narrow-BoldOblique-F Foreign
/Helvetica-Light /Helvetica-Light-F Foreign
/Helvetica-Black /Helvetica-Black-F Foreign
/Helvetica-LightOblique /Helvetica-LightOblique-F Foreign
/Helvetica-BlackOblique /Helvetica-BlackOblique-F Foreign
/Helvetica-Condensed /Helvetica-Condensed-F Foreign
/Helvetica-Condensed-Bold /Helvetica-Condensed-Bold-F Foreign
/Helvetica-Condensed-Oblique /Helvetica-Condensed-Oblique-F Foreign
/Helvetica-Condensed-BoldObl /Helvetica-Condensed-BoldObl-F Foreign
/Bookman-Light /Bookman-Light-F Foreign
/Bookman-Demi /Bookman-Demi-F Foreign
/Bookman-LightItalic /Bookman-LightItalic-F Foreign
/Bookman-DemiItalic /Bookman-DemiItalic-F Foreign
/Korinna-Regular /Korinna-Regular-F Foreign
/Korinna-Bold /Korinna-Bold-F Foreign
/Korinna-KursivRegular /Korinna-KursivRegular-F Foreign
/Korinna-KursivBold /Korinna-KursivBold-F Foreign
/Times-Roman /Times-Roman-F Foreign
/Times-Bold /Times-Bold-F Foreign
/Times-Italic /Times-Italic-F Foreign
/Times-BoldItalic /Times-BoldItalic-F Foreign
/NewCenturySchlbk-Roman /NewCenturySchlbk-Roman-F Foreign
/NewCenturySchlbk-Bold /NewCenturySchlbk-Bold-F Foreign
/NewCenturySchlbk-Italic /NewCenturySchlbk-Italic-F Foreign
/NewCenturySchlbk-BoldItalic /NewCenturySchlbk-BoldItalic-F Foreign
/Palatino-Roman /Palatino-Roman-F Foreign
/Palatino-Bold /Palatino-Bold-F Foreign
/Palatino-Italic /Palatino-Italic-F Foreign
/Palatino-BoldItalic /Palatino-BoldItalic-F Foreign
/Garamond-Light /Garamond-Light-F Foreign
/Garamond-Bold /Garamond-Bold-F Foreign
/Garamond-LightItalic /Garamond-LightItalic-F Foreign
/Garamond-BoldItalic /Garamond-BoldItalic-F Foreign
/ZapfChancery-MediumItalic /ZapfChancery-MediumItalic-F Foreign
%%EndMakeForeign

/fonttable [
0 [/Courier-F /Courier-Bold-F /Courier-Oblique-F /Courier-BoldOblique-F]
8 [/Helvetica-F /Helvetica-Bold-F /Helvetica-Oblique-F /Helvetica-BoldOblique-F]
9 [/AvantGarde-Book-F /AvantGarde-Demi-F /AvantGarde-BookOblique-F /AvantGarde-DemiOblique-F]
10 [/Helvetica-Narrow-F /Helvetica-Narrow-Bold-F /Helvetica-Narrow-Oblique-F /Helvetica-Narrow-BoldOblique-F]
11 [/Helvetica-Light-F /Helvetica-Black-F /Helvetica-LightOblique-F /Helvetica-BlackOblique-F]
12 [/Helvetica-Condensed-F /Helvetica-Condensed-Bold-F /Helvetica-Condensed-Oblique-F /Helvetica-Condensed-BoldObl-F]
16 [/Bookman-Light-F /Bookman-Demi-F /Bookman-LightItalic-F /Bookman-DemiItalic-F]
18 [/Korinna-Regular-F /Korinna-Bold-F /Korinna-KursivRegular-F /Korinna-KursivBold-F]
24 [/Times-Roman-F /Times-Bold-F /Times-Italic-F /Times-BoldItalic-F]
25 [/NewCenturySchlbk-Roman-F /NewCenturySchlbk-Bold-F /NewCenturySchlbk-Italic-F /NewCenturySchlbk-BoldItalic-F]
26 [/Palatino-Roman-F /Palatino-Bold-F /Palatino-Italic-F /Palatino-BoldItalic-F]
28 [/Garamond-Light-F /Garamond-Bold-F /Garamond-LightItalic-F /Garamond-BoldItalic-F]
50 [/ZapfChancery-MediumItalic-F /ZapfChancery-MediumItalic-F /ZapfChancery-MediumItalic-F /ZapfChancery-MediumItalic-F]
56 [/Symbol /Symbol /Symbol /Symbol]
57 [/LineDraw /LineDraw /LineDraw /LineDraw]
60 [/ZapfDingbats /ZapfDingbats /ZapfDingbats /ZapfDingbats]
] def

%%BeginGraphicsDefs
/M {moveto} bind def
/L {lineto} bind def
/LH {currentpoint exch pop lineto} bind def
/LV {currentpoint pop exch lineto} bind def
/R {3 index 1 index 1 index 5 index 5 index 1 index M
 L L L closepath pop pop} def
/setpat {setscreen 100 div setgray} bind def
/setgrayed {{dup mul exch dup mul add 1 exch sub} setpat} bind def
/setbar {{pop} setpat} bind def
/setcross {{2 copy gt {pop} {exch pop} ifelse} setpat} bind def
/fi {1 -1 scale} bind def
/II1 {save count /mscount exch def} bind def
/II2 {userdict begin /showpage {} def /letter {} def
  /legal {} def /a4 {} def /b5 {} def
  /clear { {cleartomark count msdict /mscount get eq {exit} if} loop mark} def
   mark} def
/IT {pop restore} bind def
/IX {exch msu exch msu neg ptop add translate} bind def
/IS {div 3 1 roll div exch scale} bind def
%%EndGraphicsDefs
%%EndProcSet
save /msdictstate exch def
%%EndProlog


Newsgroups: gnu.ghostscript.bug