[cups.general] CUPS 1.1.23 pstops and %%BeginFeature...%%EndFeature

Johannes Meixner jsmeix at suse.de
Tue May 16 02:56:39 PDT 2006


Hello,

in CUPS 1.1.23 the pstops filter does not remove
%%BeginFeature...%%EndFeature stuff which it gets as input.

Why is it not removed from the input in any case?

According to
http://www.cups.org/str.php?L576
and
http://www.cups.org/str.php?L1161
the pstops filter removes %%BeginFeature...%%EndFeature stuff 
for N-up printing but I think it should be removed in any case.

Reasoning:

The Adobe DSC spec. version 3.0 page 69
(where %%BeginFeature...%%EndFeature is described)
reads:
  "A document manager may choose to replace the enclosed
   PostScript language code with the proper sequence
   of instructions if the document is sent to a different
   printer than originally intended."

Therefore it looks o.k. when pstops keeps existing
%%BeginFeature...%%EndFeature stuff in the document
but I wonder whether it is really correct for CUPS.

We have many user problem reports because applications
(in particular Mozilla/Firefox and OOo) like to add whatever
%%BeginFeature...%%EndFeature stuff to their PostScript output
and then this interferes with what pstops will add.

I wrote tons of explanations to the Mozilla/Firefox and OOo people
to let their applications simply produce printer-independent generic
PostScript if CUPS is used and then printing would simply work
but they permanently insist not to understand :-(

Nevertheless I wonder whether the real meaning of Adobe DSC spec.
may be a bit misunderstood because Adobe did not have CUPS in mind
when they made it.

Isn't it in fact for CUPS always the case that pstops can assume
that it is "sent to a different printer than originally intended"
when there is %%BeginFeature...%%EndFeature stuff in the pstops input?

When the application had added %%BeginFeature...%%EndFeature stuff
into its PostScript output then it had made it for whatever printer
but the CUPS pstops filter cannot know for which printer the
application has made it and therefore it must assume that the
application's %%BeginFeature...%%EndFeature stuff will not
match for the actual printer to which CUPS will send it.

And even if it is the same printer, it must remove it because
for example whe I use OpenOffice_org-1.9.125 and print into
a file I get in the OOo PostSCript output for example
---------------------------------------------------------------
%%BeginFeature: *PageSize Letter
<</PageSize[612 792]/ImagingBBox null>>setpagedevice
%%EndFeature
---------------------------------------------------------------

When I want to print this file later on a printer which
has only A4 paper ("letter"-pages print o.k. on A4 paper),
the output of pstops is:
---------------------------------------------------------------
%%BeginFeature: *PageSize A4
<</PageSize[595 842]/ImagingBBox null>>setpagedevice
%%EndFeature
....
%%BeginFeature: *Resolution 300dpi
<</HWResolution[300 300]>>setpagedevice
%%EndFeature
..
..
..
%%BeginFeature: *PageSize Letter
<</PageSize[612 792]/ImagingBBox null>>setpagedevice
%%EndFeature
---------------------------------------------------------------
I.e. pstops adds its %%BeginFeature...%%EndFeature stuff
from the PPD file at the beginning but later the stuff
from OOo is still there which would change the PageSize
back to Letter.

Therefore:
Shouldn't pstops remove %%BeginFeature...%%EndFeature stuff
from its input in any case?

What do you think?


Kind Regards
Johannes Meixner
-- 
SUSE LINUX Products GmbH, Maxfeldstrasse 5      Mail: jsmeix at suse.de
90409 Nuernberg, Germany                    WWW: http://www.suse.de/





More information about the cups mailing list