Subject: Re: S
To: None <>
From: Mark P. Gooderum <>
List: current-users
Date: 11/03/1994 08:42:20
According to
> Could you explain to me why having the printer reset for each job is a
> bad idea, or causes you problems?  It seems to me that *not* having it
> reset, and leaving around state from the previous print job, would be a
> very bad idea in a multi-user environment.

Because almost every printer I know will flush the buffer and eject the
current page on a hardware reset.  The DJ550C I have has a very big buffer
which is enough for several pages of text and even a page or more of
graphics mode output, ala from ghostscript.

User 1 prints his job, it's 3 pages.  Lpd blasts it down to the buffer
in about 2 seconds, and goes away, the printer happily continues to 
finish the job.  In the middle of page 2, User 2 prints a job.
The new lpd open()s /dev/lpBlech and the kernel promptly resets the
printer.  The printer promptly dumps the buffer, ejects the current
page, and starts the next job.  User 1 isn't real happy.

Not very friendly in a multi-user environment.  All the HP Desk/LaserJet's
I know of do this, as do at least some of the Cannon Bubble Jet's and
a few more.  Many dot matrix printers are worse, they dump the buffer
and reset TOF to where ever the page is.

The real solution is to include the printer reset sequence at the top
of the job, or at least in anything fancy include it at the end of the
job, after the final page eject or form feed to be friendly to the next
straight text job.  In practice this isn't often needed, at least with
the xxxJets.  Most people print straight text, or they print postscript
with ghostscript or maybe they have a dvilj type bit.  Ghostscript at
least is good about resetting the printer at both ends of the job.  Some
of the dvipcl things do, some don't...since you have source it's pretty
easy to fix.
Mark P. Gooderum			   USSnail:  Good Creations
Senior Consultant - Operating Systems Group	     3029 Blackstone Ave. So.
  "Working hard to be hardly working..."	     St. Louis Park, MN 55416
EMail:		   Voice:    (612) 922-3953
Interactive:	   Fax:	     (612) 922-2676