PostScript problem with Xerox Phaser 6280DN
Helge Blischke
h.blischke at acm.org
Thu Dec 31 10:05:52 PST 2009
Steve Kleene wrote:
>> That means, there is something wrong with how the job patch file is
>> set up in the PPD. I already have a suspicion but I'll need some more
>> work to either very- or falsify the hypothesis.
>>
>> Helge
>>
> I really appreciate the time you're putting into this. In case it may be
> of any help, I have now also posted the whole PPD file:
>
> http://syrano.acb.uc.edu/tmp/Phaser_6280DN.ppd
Well, Adobe Reader is the culprit. After installing a printer (print to
file) using the Phaser_6280DN.ppd on both MacOS 10.5 and SuSE Linux 11.1 and
doing some test prints from Adobe Reader (9.2 on the Mac and 9.1.2 on Linux)
revealed
(1) no problems on MacOS 10.5
(2) same issue as yours on Linux.
Further investigation showed up that AdobeReader on Linux by itself included
some defaults/options from the printer's PPD, the JobPatchFile among them,
but bracketed with PS code that caused the error.
I haven't checked if the newest Adobe Reader 9.2 on Linux exhibits the same
issue, but I have a solution to your problem (tested on my Linux install):
(1) Get the filter oopstops from the CUPS website (search the links for this
name) and install it in your /usr/lib/cups/filter directory (or what the
directory is named in your installation).
(2) Edit your printer's PPD as follows:
After the line reading "*cupsVersion: 1.1", insert the line
*cupsPreFilter: "application/postscript 0 oopstops"
That's all - provided you have a CUPS version 1.3.x or higher (the prefilter
stuff has been introduced with 1.3.0) - otherwise contact me directly.
If your don't succeedto download the mentioned filter, drop me an e-mail to
"h dot blischke at acm dot org".
Helge
P.S.: For all who are interested in the technical details:
The reason why the Reader generated PostScript jobs fail is that the
job patch file is bracketed by
"[{" and "} stopped cleartomark", that is, the job patch file gets executed
as the body of a PostScript procedure.
Normally, this doesn't cause any problems except in cases as like this:
the job patch file begins with "currentfile eexec". But, as the executon is
deferred until the PS interpreter reaches the stopped operator, the file
"position" returned b y currentfile is just behind the stopped operator
instead of behind the eexec operator in the procedure body.
The filter I suggested to use has originally been designed to solve a
similar issue with OpenOffice 2.x and 3.x and eliminates (among other things
it does) a job patch file specified just as the Adobe Reader does as well.
The CUPS pstops filter safely inserts the job patch file without the
delicate procedure stuff around it.
More information about the cups
mailing list