[comp.lang.postscript] DOS programs and PostScript

geertj@nlgvax.UUCP (Geert Jan de Groot) (02/09/89)

Hi,

I would like to start a discussion on use of the PostScript language by
DOS programs. While PostScript has the ability to build a real portable
printer interface, most programs use some fancy method which may give
trouble connecting a printer (for instance, laserwriter plus).

Such neat setups may work with a printer directly connected to the PC
(but need special drivers - horror stories on that?), but if one connects 
a printer via a network (I use PC-NFS, allows sharing of the not-so-cheap
printer), those methods fail badly.

What should portable postscript code look like? In my opinion, it should:

 - Not use control characters, only CR, LF. Especially, no control-C,
   control-D, control-U and the like. These control-characters are likely
   to screw up a printer spooler, like SUNOS.

 - Not use 8-bit characters. Not every connection is 8-bit; why should one
   need 8-bit characters anyway?

 - Start with '%!'. This will trigger newer software that a PostScript
   file follows. This allows mixing of PostScript with other types of 
   files. Because % starts a comment, there is no reason to omit this
   lead-in.

 - End with 'showpage'. What's the use of sending data without giving
   the command to print it?

 - Not depend on sending some init data to the printer when the program
   starts, but send all data (including PostScript lead-ins et all)
   one after another for each job. Sending init only at the start of
   a program gives trouble with spooled jobs (i.e. other data being 
   printed between the init code and the output of a program).

 - Not leave resident code behind after the job is done.


Because I find most PostScript support available on update disks and
add-on packs and new versions, I think most software houses are just 
beginning using PostScript. With this article I hope to start a 
discussion on guidelines how things can be done, something which can 
be easily added while the PostScript support is still under development.

Also, what packages already use clean PostScript these days? I tried
WordPerfect, Lotus 123, ORCAD, ChiWrite, but they all gave more or
less trouble with the points mentioned above. How about other packages?

Thanks,

Geert Jan

_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.

Geert Jan de Groot,			Email: geertj@nlgvax.pcg.philips.nl
Philips Research Laboratories,		       ..!mcvax!nlgvax!geertj
Project Centre Geldrop,			Packet: PE1HZG @ PI8ZAA
Building XR, Room 15,
Willem Alexanderlaan 7B,		"MS-DOS is just a bootstrap" - me
5664 AN Geldrop, The Netherlands.
phone: +31 40 892204			[Standard disclaimers apply]

hst@mh_co2.mh.nl (Klaas Hemstra) (02/10/89)

From article <204@nlgvax.UUCP>, by geertj@nlgvax.UUCP (Geert Jan de Groot):
> Hi,
> 
> I would like to start a discussion on use of the PostScript language by
> DOS programs. While PostScript has the ability to build a real portable
> printer interface, most programs use some fancy method which may give
> trouble connecting a printer (for instance, laserwriter plus).
 
  ..  Stuff deleted

>  - Not use control characters, only CR, LF. Especially, no control-C,
>    control-D, control-U and the like. These control-characters are likely
>    to screw up a printer spooler, like SUNOS.

I do not agree, this should work ok.
The purpose of a network is to share printers / discs as if they were yours,
so if you can use a printer that is directly attached to your computer why
can't you use that same printer through the network ?
I would consider that a bad network.

> 
>  - Not use 8-bit characters. Not every connection is 8-bit; why should one
>    need 8-bit characters anyway?

Also not agreed.
This sounds fine when you talk about a postscript printer but may indeed
be nessecary with other printers.
Ever tried to use a Epson printer to print graphic images when there is only
an 7 bits connection to it ?

>  - Start with '%!'. This will trigger newer software that a PostScript
>    file follows. This allows mixing of PostScript with other types of 
>    files. Because % starts a comment, there is no reason to omit this
>    lead-in.
> 
>  - End with 'showpage'. What's the use of sending data without giving
>    the command to print it?
> 
 ..... Stuff deleted

Finally: I realise that maybe this followup is a little focussed on other
printers, but that s the point I try to make. I think its a mistake of the
network when certain special codes are not passed on correctly. Lately I
had a problem with an Epson and an HP Laserjet printer, both attached to a
network. They would not print graphics correctly. As it turned out the network
expanded tabs to spaces. Fortunately this "feature" could be turned off.

Thats why I find that you should not blaim PostScript for things that are
really the networks fault.

Klaas Hemstra  (hst@mh.nl)                   |    /  / ,~~~  ~~/~~
uucp: ..{uunet!}hp4nl!mh.nl!hst              |   /--/  `-,    /  ___  |_/ |__|
Multihouse N.V., Gouda, the Netherlands      |  /  / ___/    /   ---  | \ |  | 

nelson@sun.soe.clarkson.edu (Russ Nelson) (02/11/89)

Painter's Apprentice (available from grape.ecs.clarkson.edu as below and
from Compu$erve's IBMAPP Graphics area (pa.arc) follows exactly the guidelines
that you outline.  Painter's Apprentice is a bitmap editor in the genre of
MacPaint, Dr. Halo, and PC-Paintbrush.

Grape:
The semi-official c.b.i.p archives are on grape.ecs.clarkson.edu which
is a Zenith Z-248 running a modified version of KA9Q's TCP/IP NET that
allows you to shell out to DOS while still processing packets.  After
shelling to DOS, we run an Opus BBS.  The particulars:

FTP: grape.ecs.clarkson.edu [128.153.13.196], user anonymous, password guest.
     Look in 00readme for timely information.
     Look in /d/files/general/cuhug.lst for a listing of files.
     Look in /e/files/binaries/*.* for c.b.i.p postings.
     Look in /c/files/gif for .GIF images.
     Look in /d/files/graphics/pa.arc for Painter's Apprentice
     Look in /e/files/freemacs/* for Freemacs
Opus: 260/360 in the Nodelist.  (315)268-6667, 8N1, 1200/2400 Baud, 24 hours.
     Look in file area 12 for Painter's Apprentice
     Look in file area 25 for Freemacs
     Look in file area 26 for c.b.i.p postings.
     Look in file area 27 for .GIF images.
--
--russ (nelson@clutx [.bitnet | .clarkson.edu])
If you can, help others.
If you can't, at least don't hurt others--the Dalai Lama

geof@apolling (Geof Cooper) (02/14/89)

Why don't you move your discussion of PostScript to comp.lang.postscript?

- Geof

gore@eecs.nwu.edu (Jacob Gore) (02/14/89)

/ comp.lang.postscript / geertj@nlgvax.UUCP (Geert Jan de Groot) / Feb  9, 1989 /
>Also, what packages already use clean PostScript these days? I tried
>WordPerfect, Lotus 123, ORCAD, ChiWrite, but they all gave more or
>less trouble with the points mentioned above. How about other packages?

Borland's Quattro (a spreadsheet) seems to print cleanly.

We also use PC-NFS.  Speaking of which... I wish it could pass options to
lpr... 

Jacob Gore				Gore@EECS.NWU.Edu
Northwestern Univ., EECS Dept.		{oddjob,gargoyle,att}!nucsrl!gore

gore@eecs.nwu.edu (Jacob Gore) (02/14/89)

/ comp.lang.postscript / hst@mh_co2.mh.nl (Klaas Hemstra) / Feb 10, 1989 /
> >  - Not use control characters, only CR, LF. Especially, no control-C,
> >    control-D, control-U and the like. These control-characters are likely
> >    to screw up a printer spooler, like SUNOS.
> 
> I do not agree, this should work ok.
> The purpose of a network is to share printers / discs as if they were yours,

Well, this much I'd buy.  The networked spooler can simply discard the
control characters.

>Thats why I find that you should not blaim PostScript for things that are
>really the networks fault.

The biggest problem, because you need an AI system to work around it, is
not these little communication glitches.

The biggest problem is that many (perhaps most) single-user-computer
programs assume that they own their world.  Each one thinks that it can
send its own custom header to the printer in the morning, and the printer
will still be primed that way when it's time to print some output in the
evening.

That's not a networking problem.  It's an attitude problem.

Jacob Gore				Gore@EECS.NWU.Edu
Northwestern Univ., EECS Dept.		{oddjob,gargoyle,att}!nucsrl!gore

phil@diablo.amd.com (Phil Ngai) (02/16/89)

In article <206@nlgvax.UUCP> geertj@nlgvax.UUCP (Geert Jan de Groot) writes:
|WordPerfect, Lotus 123, ORCAD, ChiWrite, but they all gave more or

I have used ORCAD with PC-NFS running a Laserwriter and it seems to
print fine for me. (did you know you can make the LW run at 38.4K?)

Microsloth Word, on the other hand, is nothing but trouble.

--
Phil Ngai, phil@diablo.amd.com		{uunet,decwrl,ucbvax}!amdcad!phil
"In Texas, they run the red light after it turns red."
"In Taiwan, they run the red light before it turns green."

greid@adobe.com (Glenn Reid) (02/16/89)

I think that this is an excellent topic for discussion.  I see it as
a major problem with the use of PostScript in the PC environment.

In article <204@nlgvax.UUCP> geertj@nlgvax.UUCP (Geert Jan de Groot) writes:
>Hi,
>
>I would like to start a discussion on use of the PostScript language by
>DOS programs. While PostScript has the ability to build a real portable
>printer interface, most programs use some fancy method which may give
>trouble connecting a printer (for instance, laserwriter plus).

>What should portable postscript code look like? In my opinion, it should:
>
> - Not use control characters, only CR, LF. Especially, no control-C,
>   control-D, control-U and the like. These control-characters are likely
>   to screw up a printer spooler, like SUNOS.

In general, this is true.  However, control-D is necessary to end a job
if it is being sent on a serial line or a parallel port to a printer.
The main objective is to treat these as part of the TRANSMISSION of the
file, and not as part of the file itself.

> - Not use 8-bit characters. Not every connection is 8-bit; why should one
>   need 8-bit characters anyway?

Yes, I agree with this.  The PostScript language is carefully defined
to be fully expressible in 7-bit ASCII for portability.

> - Start with '%!'. This will trigger newer software that a PostScript
>   file follows. This allows mixing of PostScript with other types of 
>   files. Because % starts a comment, there is no reason to omit this
>   lead-in.

This is a good idea, too.

> - End with 'showpage'. What's the use of sending data without giving
>   the command to print it?

This is not a good convention, for many reasons.  First of all, things
like downloadable fonts will not print any pages.  Second of all, the
"showpage" operation may be contained in a procedure body, and will
not necessarily appear at the end of the file.

> - Not depend on sending some init data to the printer when the program
>   starts, but send all data (including PostScript lead-ins et all)
>   one after another for each job. Sending init only at the start of
>   a program gives trouble with spooled jobs (i.e. other data being 
>   printed between the init code and the output of a program).

Yes.  The "exitserver" operator is not really portable, and dependence on
it is not a good idea.  In particular, previewers and Display PostScript
interpreters may or may not support the notion of a server loop.

> - Not leave resident code behind after the job is done.

A good idea.

For more information on portability, please retrieve the Encapsulated
PostScript File specification from our server, by sending a mail
message to "ps-file-server@adobe.com" containing the line:

send Documents EPSF.ps

Thanks for sending this message.  Adobe is very interested in the
portability of documents (especially in the PC environment) and we'll
do what we can to encourage it.

--
Glenn Reid
Adobe Systems
Developer Tools & Strategies

izumi@violet.berkeley.edu (Izumi Ohzawa) (02/16/89)

In article <24456@amdcad.AMD.COM> phil@diablo.AMD.COM (Phil Ngai) writes:
>In article <206@nlgvax.UUCP> geertj@nlgvax.UUCP (Geert Jan de Groot) writes:
>|WordPerfect, Lotus 123, ORCAD, ChiWrite, but they all gave more or
>
>I have used ORCAD with PC-NFS running a Laserwriter and it seems to
>print fine for me. (did you know you can make the LW run at 38.4K?)
>
>Microsloth Word, on the other hand, is nothing but trouble.

There indeed was a real problem with MS WORD version 3.xx.

However, we have no trouble sending Word Version 4.0 output
via PC Network server to Apple LaserWriter.  We had to make a
little patch to POSTSCRx.INI by commenting out the line which says:

serverdict begin 0 exitserver

This way, Word jobs will not store anything permanently in LW.
And subsequent other jobs will have the full VM of LW.
This works because WORD V4.0 sends POSTSCRx.INI file each time it
prints something.

Word V3.xx apparently tried to save a little time by sending the
equivalent .INI file only once the first time.

Izumi Ohzawa
izumi@violet.berkeley.edu

phil@diablo.amd.com (Phil Ngai) (02/17/89)

In article <20446@agate.BERKELEY.EDU> izumi@violet.berkeley.edu (Izumi Ohzawa) writes:
|There indeed was a real problem with MS WORD version 3.xx.
|
|However, we have no trouble sending Word Version 4.0 output
|via PC Network server to Apple LaserWriter.  We had to make a
|little patch to POSTSCRx.INI by commenting out the line which says:
|
|serverdict begin 0 exitserver
|
|This way, Word jobs will not store anything permanently in LW.
|And subsequent other jobs will have the full VM of LW.
|This works because WORD V4.0 sends POSTSCRx.INI file each time it
|prints something.
|
|Word V3.xx apparently tried to save a little time by sending the
|equivalent .INI file only once the first time.

I'm using Word 4.0 with PC-NFS and it does not work reliably for me.
It may be that PC Network acts differently from PC-NFS. Also, I tend
to print by outputting to a file and then using PC-NFS "net print".
Word does not seem to put on the .ini file when it prints to a file.
Perhaps 4.0 does when printing to a printer but not a file? 

--
Phil Ngai, phil@diablo.amd.com		{uunet,decwrl,ucbvax}!amdcad!phil
"In Texas, they run the red light after it turns red."
"In Taiwan, they run the red light before it turns green."

les@chinet.chi.il.us (Leslie Mikesell) (02/18/89)

In article <24469@amdcad.AMD.COM> phil@diablo.AMD.COM (Phil Ngai) writes:

>Word does not seem to put on the .ini file when it prints to a file.
>Perhaps 4.0 does when printing to a printer but not a file? 

Yes, I have observed that to be the case by looking at the output
sent to the network print spooler.

Les Mikesell

kevinc@auvax.UUCP (Kevin "auric" Crocker) (02/19/89)

/ comp.lang.postscript / geertj@nlgvax.UUCP (Geert Jan de Groot) / Feb  9, 1989 /
>Also, what packages already use clean PostScript these days? I tried
>WordPerfect, Lotus 123, ORCAD, ChiWrite, but they all gave more or
>less trouble with the points mentioned above. How about other packages?

I've found that Lotus Manuscript does one hell of a good job.  Our
visual designers and typesetters feel that if they let me print to the
LN03 that htey could then go right to camera shots and printing.

I've yet to find something that I can construct that can't be printed
nice and clean.

Kevin Crocker
-- 
Kevin "Auric" Crocker @Athabasca University {alberta ncc}auvax!kevinc

cramer@optilink.UUCP (Clayton Cramer) (02/22/89)

In article <24469@amdcad.AMD.COM>, phil@diablo.amd.com (Phil Ngai) writes:
> In article <20446@agate.BERKELEY.EDU> izumi@violet.berkeley.edu (Izumi Ohzawa) writes:
> I'm using Word 4.0 with PC-NFS and it does not work reliably for me.
> It may be that PC Network acts differently from PC-NFS. Also, I tend
> to print by outputting to a file and then using PC-NFS "net print".
> Word does not seem to put on the .ini file when it prints to a file.
> Perhaps 4.0 does when printing to a printer but not a file? 
> 
> Phil Ngai, phil@diablo.amd.com		{uunet,decwrl,ucbvax}!amdcad!phil

You are correct.  The .INI file is not printed to a disk file, only
the printer.  Some changes to the .INI file are required to make Word
4.0 print through PC-NFS directly, but it does work.  I use it all
the time.

Here's the POSTSCRP.INI file I use with PC-NFS:
(Note the change at the first line is to make the print server recognize
this as PostScript).  Note also that there's no control-D at the start of
the file.

==cut here====================================================================
%! PostScript
% userdict /msdict known {stop} if
% serverdict begin 0 exitserver
/msdict 100 dict def
/mslinedraw 25 dict def
/PSl {msdict begin /ptop 792 def /sw 0 def 
 /ftsz 12 def /smode 0 def /STh -3.6 def /fs 0 def /offset 0 def
  fonttable 1 get fontset E 
  90 rotate 0 -612 translate save statusdict begin /waittimeout 360 def end} def
/PSp {msdict begin /ptop 792 def /sw 0 def 
 /ftsz 12 def /smode 0 def /STh -3.6 def /fs 0 def /offset 0 def
  fonttable 1 get fontset E save statusdict begin /waittimeout 360 def end} def
mslinedraw begin
/FontType 3 def
/FontMatrix [1.0 30.0 div 0 0 1.0 30.0 div 0 0] def
/FontBBox [0 0 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

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

/CharProcs 55 dict def
CharProcs begin
/.notdef {} 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 0 b 7 7 7 0 a} def
/dstr {0 9 9 9 9 0 b 0 5 9 5 a} def
/djr {f h 12 0 12 30 a} def
/dv {m} def
/dtr {h 0 9 12 9 12 0 b} def
/dbr {f  0 5 12 5 12 30 b} def
/sdbr {0 7 12 7 12 30 b 7 7 7 30 a} def
/dsbr {0 5 9 5 9 30 b 0 9 9 9 a} def
/str {0 7 9 7 9 0 b} def
/sbl {9 30 9 7 18 7 b} def
/sjb {j 9 30 c} def
/sjt {j 9 0 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 30 7 5 18 5 b} def
/dtl {i 7 0 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 0 7 30 a} def
/dh {l} def
/djc {f g h i} def
/dsjb {l 9 30 9 9 a} def
/sdjb {j 7 7 7 30 a 12 7 12 30 a} def
/dsjt {l 9 0 9 5 a} def
/sdjt {j 7 7 7 0 a 12 7 12 0 a} def
/sdbl {7 30 7 7 18 7 b 12 30 12 7 a} def
/dsbl {9 30 9 5 18 5 b 9 9 18 9 a} def
/dstl {9 0 9 9 18 9 b 9 5 18 5 a} def
/sdtl {7 0 7 7 18 7 b 12 0 12 7 a} def
/sdjc {m j} def
/dsjc {l k} def
/sbr {0 7 9 7 9 30 b} def
/stl {9 0 9 7 18 7 b} def
/light {0.75 setgray n} def
/med {0.50 setgray n} def
/dark {0.30 setgray n} def
/black {n} def
/bt {0 7 18 7 18 30 d 0 30 e} def
/bb {0 0 18 0 18 7 d 0 7 e} def
/bl {0 0 9 0 9 30 d 0 30 e} def
/br {9 0 18 0 18 30 d 9 30 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
FontDirectory /LineDraw known not
   {/LineDraw mslinedraw definefont pop} if

msdict begin
/fonttable
  [0 [/Courier-Foreign /Courier-Bold-Foreign /Courier-Oblique-Foreign /Courier-BoldOblique-Foreign]
   8 [/Helvetica-Foreign /Helvetica-Bold-Foreign /Helvetica-Oblique-Foreign /Helvetica-BoldOblique-Foreign]
   9 [/AvantGarde-Book-Foreign /AvantGarde-Demi-Foreign /AvantGarde-BookOblique-Foreign /AvantGarde-DemiOblique-Foreign]
   10 [/Helvetica-Narrow-Foreign /Helvetica-Narrow-Bold-Foreign /Helvetica-Narrow-Oblique-Foreign /Helvetica-Narrow-BoldOblique-Foreign]
   16 [/Bookman-Light-Foreign /Bookman-Demi-Foreign /Bookman-LightItalic-Foreign /Bookman-DemiItalic-Foreign]
   24 [/Times-Roman-Foreign /Times-Bold-Foreign /Times-Italic-Foreign /Times-BoldItalic-Foreign]
   25 [/NewCenturySchlbk-Roman-Foreign /NewCenturySchlbk-Bold-Foreign /NewCenturySchlbk-Italic-Foreign /NewCenturySchlbk-BoldItalic-Foreign]
   26 [/Palatino-Roman-Foreign /Palatino-Bold-Foreign /Palatino-Italic-Foreign /Palatino-BoldItalic-Foreign]
   50 [/ZapfChancery-MediumItalic-Foreign /ZapfChancery-MediumItalic-Foreign /ZapfChancery-MediumItalic-Foreign /ZapfChancery-MediumItalic-Foreign]
   56 [/Symbol /Symbol /Symbol /Symbol] 
   57 [/LineDraw /LineDraw /LineDraw /LineDraw]
   60 [/ZapfDingbats /ZapfDingbats /ZapfDingbats
        /ZapfDingbats]
  ] def
/SLL {/LL def} def
/BD {STh ssc} def
/BU {STh neg ssc} def
/BN {0 ssy neg rmoveto} def
/P {exch msu exch msu neg ptop add moveto} def
/S {currentpoint 3 -1 roll sw 0 32 4 -1 roll widthshow
 smode 1 and 0 ne {false 1.4 ul} if
 smode 2 and 0 ne {true 1.4 ul} if
 smode 4 and 0 ne {false STh ul} if
 smode 8 and 0 ne {ldot} if pop pop} def
/C {1 string dup 0 4 -1 roll put S} def
/J {msu ( ) stringwidth pop sub /sw exch def} def
/PE {showpage ptop exch restore save exch /ptop exch def} def
/SFL {msu /ptop exch def} def
/B {fs 2 and 0 eq {Bft} {BIft} ifelse
 ftsz scalefont setfont fs 1 or /fs exch def} def
/E {Eft ftsz scalefont setfont /fs 0 def} def
/I {fs 1 and 0 eq {Ift} {BIft} ifelse
  ftsz scalefont setfont fs 2 or /fs exch def} def
/BI {BIft ftsz scalefont setfont fs 
 2 or 1 or /fs exch def} def
/LU {1 ssm} def
/LD {2 ssm} def
/LS {4 ssm} def
/LL {/ldmode exch def 8 ssm} def
/LE {not smode and /smode exch def} 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} 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}def
/ssc {dup /ssy exch def 0 exch rmoveto} def
/ssm {dup smode or /smode exch def} def
/Cf {/Eft /Courier  findfont def /Bft /Courier-Bold findfont def
 /Ift /Courier-Oblique findfont def
 /BIft /Courier-BoldOblique findfont def} def
/ul {gsave /y exch def /dbl exch def 2 copy .2 setlinewidth
 currentpoint dbl {4 copy} if y sub newpath moveto y sub lineto stroke 
 dbl {2.4 sub newpath moveto 2.4 sub lineto stroke} if grestore} def
/PSe {restore end} def
/ldot {gsave 2 copy currentpoint /y exch def /x exch def
 newpath
 ldmode 0 eq {/offset 0 def 1 setlinewidth [1 7] 4 setdash}
 {ldmode 1 eq {[6 2] 6 setdash /offset STh def .2 setlinewidth}
 {ldmode 2 eq {[] 0 setdash /offset 1.4 def .2 setlinewidth} if}
 ifelse} ifelse
 offset sub moveto x y offset sub lineto stroke grestore} def
/reencsmalldict 36 dict def
/ReEncodeSmall
  {reencsmalldict begin
   /newcodesandnames exch def
   /newfontname exch def
   /basefontname exch def
   /basefontdict basefontname findfont def
   /newfont basefontdict maxlength dict def
   basefontdict
     {exch dup /FID ne
       {dup /Encoding eq
         {exch dup length array copy
            newfont 3 1 roll put}
         {exch newfont 3 1 roll put}
         ifelse}
       {pop pop}
       ifelse
     } forall
   newfont /FontName newfontname put
   newcodesandnames aload pop
   newcodesandnames length 2 idiv
   {newfont /Encoding get 3 1 roll put}
   repeat
   newfontname newfont definefont pop
   end 
  } def
/foreignvec [
128 /Ccedilla
129 /udieresis
130 /eacute
131 /acircumflex
132 /adieresis
133 /agrave
134 /aring
135 /ccedilla
136 /ecircumflex
137 /edieresis
138 /egrave
139 /idieresis
140 /icircumflex
141 /igrave
142 /Adieresis
143 /Aring
144 /Eacute
145 /ae
146 /AE
147 /ocircumflex
148 /odieresis
149 /ograve
150 /ucircumflex
151 /ugrave
152 /ydieresis
153 /Odieresis
154 /Udieresis
155 /cent
156 /sterling
157 /yen
159 /florin
160 /aacute
161 /iacute
162 /oacute
163 /uacute
164 /ntilde
165 /Ntilde
166 /ordfeminine
167 /ordmasculine
168 /questiondown
173 /exclamdown
174 /guillemotleft
175 /guillemotright
225 /germandbls
249 /bullet
] def
/Courier /Courier-Foreign foreignvec ReEncodeSmall
/Courier-Bold /Courier-Bold-Foreign foreignvec ReEncodeSmall
/Courier-Oblique /Courier-Oblique-Foreign foreignvec ReEncodeSmall
/Courier-BoldOblique /Courier-BoldOblique-Foreign foreignvec ReEncodeSmall
/Helvetica /Helvetica-Foreign foreignvec ReEncodeSmall
/Helvetica-Bold /Helvetica-Bold-Foreign foreignvec ReEncodeSmall
/Helvetica-Oblique /Helvetica-Oblique-Foreign foreignvec ReEncodeSmall
/Helvetica-BoldOblique /Helvetica-BoldOblique-Foreign foreignvec ReEncodeSmall
/AvantGarde-Book /AvantGarde-Book-Foreign foreignvec ReEncodeSmall
/AvantGarde-Demi /AvantGarde-Demi-Foreign foreignvec ReEncodeSmall
/AvantGarde-BookOblique /AvantGarde-BookOblique-Foreign foreignvec ReEncodeSmall
/AvantGarde-DemiOblique /AvantGarde-DemiOblique-Foreign foreignvec ReEncodeSmall
/Helvetica-Narrow /Helvetica-Narrow-Foreign foreignvec ReEncodeSmall
/Helvetica-Narrow-Bold /Helvetica-Narrow-Bold-Foreign foreignvec ReEncodeSmall
/Helvetica-Narrow-Oblique /Helvetica-Narrow-Oblique-Foreign foreignvec ReEncodeSmall
/Helvetica-Narrow-BoldOblique /Helvetica-Narrow-BoldOblique-Foreign foreignvec ReEncodeSmall
/Bookman-Light /Bookman-Light-Foreign foreignvec ReEncodeSmall
/Bookman-Demi /Bookman-Demi-Foreign foreignvec ReEncodeSmall
/Bookman-LightItalic /Bookman-LightItalic-Foreign foreignvec ReEncodeSmall
/Bookman-DemiItalic /Bookman-DemiItalic-Foreign foreignvec ReEncodeSmall
/Times-Roman /Times-Roman-Foreign foreignvec ReEncodeSmall
/Times-Bold /Times-Bold-Foreign foreignvec ReEncodeSmall
/Times-Italic /Times-Italic-Foreign foreignvec ReEncodeSmall
/Times-BoldItalic /Times-BoldItalic-Foreign foreignvec ReEncodeSmall
/NewCenturySchlbk-Roman /NewCenturySchlbk-Roman-Foreign foreignvec ReEncodeSmall
/NewCenturySchlbk-Bold /NewCenturySchlbk-Bold-Foreign foreignvec ReEncodeSmall
/NewCenturySchlbk-Italic /NewCenturySchlbk-Italic-Foreign foreignvec ReEncodeSmall
/NewCenturySchlbk-BoldItalic /NewCenturySchlbk-BoldItalic-Foreign foreignvec ReEncodeSmall
/Palatino-Roman /Palatino-Roman-Foreign foreignvec ReEncodeSmall
/Palatino-Bold /Palatino-Bold-Foreign foreignvec ReEncodeSmall
/Palatino-Italic /Palatino-Italic-Foreign foreignvec ReEncodeSmall
/Palatino-BoldItalic /Palatino-BoldItalic-Foreign foreignvec ReEncodeSmall
/ZapfChancery-MediumItalic /ZapfChancery-MediumItalic-Foreign foreignvec ReEncodeSmall
==cut here====================================================================
-- 
Clayton E. Cramer
{pyramid,pixar,tekbspa}!optilink!cramer
Disclaimer?  You must be kidding!  No company would hold opinions like mine!

izumi@violet.berkeley.edu (Izumi Ohzawa) (02/22/89)

In article <976@optilink.UUCP> cramer@optilink.UUCP (Clayton Cramer) writes:
>In article <24469@amdcad.AMD.COM>, phil@diablo.amd.com (Phil Ngai) writes:
>> Word does not seem to put on the .ini file when it prints to a file.
>> Perhaps 4.0 does when printing to a printer but not a file? 
>> Phil Ngai, phil@diablo.amd.com		{uunet,decwrl,ucbvax}!amdcad!phil
>
>You are correct.  The .INI file is not printed to a disk file, only
>the printer.  Some changes to the .INI file are required to make Word
>4.0 print through PC-NFS directly, but it does work.  I use it all
>the time.
>
>Here's the POSTSCRP.INI file I use with PC-NFS:
>==cut here============= ... [PostScript code deleted]....

This brings me to the question of Copyright.
Are we free to distribute POSTRCRP.INI with the actual Word output
to someone else as print file destined for PS printers?
It seems to me that it is a reasonable thing to expect from a
word processing program vendor.

Does Microsoft has any official position on this?
Izumi Ohzawa
izumi@violet.berkeley.edu