[Oberon] PSPrinter.Mod

shark at gulfnet.sd64.bc.ca shark at gulfnet.sd64.bc.ca
Fri Apr 30 03:37:39 CEST 2004

Oberon readers,

There is a LaserJet III here with an HP PostScript 
cartridge and PSPrinter is installed in ETH Oberon 
/ PC Native 05.01.2003.  A test page prints correctly 
but then "PROCESSING DATA" continues until "PS 
ERROR 16".

The _PostScript Cartridge User's Guide_ explains the 
error in section 5.8.b.  Quoting briefly, "The 
control-D must be the last thing sent to the printer."
I don't really understand the need for the control-D.
Apparently the newer printers at the ETH don't impose
this requirement.  In any case, I added the second of
these three statements in PSPrinter.Close.

Files.WriteBytes(printR, buffer, bufSize-srcR.res) UNTIL srcR.eof;
(* End-of-file signal for a LaserJet III with an HP PostScript cartidge. *) 
IF ~P.eps THEN Files.Write(printR, 4X) END;  (* P. Easthope, 2004-04-29. *)
IF ~P.anonymous THEN Printer.Spool(P.printF) END;

A few additional points remain.

1. My understanding of PSPrinter.Mod is cursory.  Is this 
repair appropriate?  Is there a case where it will fail?

2. Can the decision to insert "4X" be automated by probing
or querying the printer?  Otherwise the user must diagnose 
the problem and recompile PSPrinter.  This is beyond a 
novice and is inconvenient at best.

3. If the repair can not be automated, the additional 
statement should be supplied in the distribution, commented
out.  Also it should be mentioned in 
http://www.oberon.ethz.ch/printer.html .

Regards,         Peter E.


More information about the Oberon mailing list