Subject: Re: lpwrapper
To: NetBSD Userlevel Technical Discussion List <tech-userlevel@NetBSD.ORG>
From: Greg A. Woods <woods@weird.com>
List: tech-userlevel
Date: 03/20/2003 21:27:39
[ On Thursday, March 20, 2003 at 20:27:54 (-0500), gabriel rosenkoetter wrote: ]
> Subject: Re: lpwrapper
>
> In any case, printing Postscript as text is, as you point out,
> *always* complicated precisely because it *is* text, but the general
> case is definitely that you don't want it that way out of the
> printer (or on the screen, for that matter).

Assuming you have a PostScript printer then printing PostScript as text
is never a problem provided that you never make one fundamental mistake:


Never configure your printing system to try to do automatic formatting
(e.g. typesetting, image-to-print translation, etc.), and never EVER
assume your print sppoler will do any automatic formatting.


That's where the problems start in the first place and if you get rid of
that idiocity then even half-clued users will never get confused.  You
always just send ready-to-render PostScript to your printer and that's
it.  This whole idea of allowing users to just print their files is
totally bogus and luckily these days there's not so much, at least in
the unix world, that will lead them to think they can do that.  Users
mostly now know they have to use the application they created the file
with/for in order to print it (i.e. convert it to PostScript :-).


Of course if you don't have a PostScript printer and you want to be able
to render (not print as text) PostScript in a way compatible with
whatever kind of printer you do have (as any good unix user should
expect to be able to do) then there is some call for being able to do
what I call "output conversion" (which is totally different from format
translation).  One very safe way to do this is to pretend you have a
PostScript printer and to always filter printer jobs through a PS
rendering engine that can drive your actual printer (such as
GhostScript) -- i.e. pretend you have a PS printer.  It may not always
be the most efficient way of doing things, but it will "just work(tm)".
This breaks down of course when you have pre-formatted output that's in
some "proprietary" (non-PS) language native to your printer, but
provided your filter can always clearly distinguish proper PS output and
"proprietary" output then you can easily implement a simple bypass so
that the latter will be sent directly to your printer.

Personally though I'd suggest just getting a good PostScript printer and
forgetting about all the issues of "output conversion"....  :-)

Remember though -- never try to do formatting in your print spooler!


(Mabye we should rip out all the bogus formatting support from lpd just
to make sure people don't continue to get so confused -- and no I'm not
joking about this part at all.)


> If I wanted a text-only
> version, I'd probably pass my Postscript file through enscript
> first.

exactly -- that will always "just work(tm)"(*)  ;-)

(*) if you have, or have pretended to have, a PostScript printer!

-- 
								Greg A. Woods

+1 416 218-0098;            <g.a.woods@ieee.org>;           <woods@robohack.ca>
Planix, Inc. <woods@planix.com>; VE3TCP; Secrets of the Weird <woods@weird.com>