[LOW] STR #2251: Reverse print does not work if PPDfile has '*OpenUI *OutputOrder:' block

Konstantin Belyanski konst.belyanski at samsung.com
Tue Feb 20 00:45:22 PST 2007


>
> [STR Closed w/o Resolution]
>
> Um, if there is an OutputOrder option in the PPD file, then the *printer*
> is supposed to do the ordering of the output.  I'd guess you just have a
> bad PPD and your printer doesn't actually support reverse order printing
> on its own...
>
> Link: http://www.cups.org/str.php?L2251
> Version: 1.2.7
> Fix Version: None
>

Yes, you are right, it is current CUPS behaviour. But does this
behaviour right ? Let's see 'PostScript Printer Description File
Format Specification' document, version 4.3, 9 February 1996.
This document (on page 120) states:

  Note To builders of PPD files: *DefaultOutputOrder can be used
  by a print manager to determine in which order to send the pages
  of the job, so it should usually be included in the PPD file even
  when the output order cannot be changed. If *DefaultOutputOrder
  is stand-alone, its value must be Normal or Reverse. See the note
  under Unknown in section 4.4, and section 4.5.

*DefaultOutputOrder __can__ (yes, can, not must) be used by a print
manager (i.e. by CUPS) to send the pages in specified order.

But *DefaultOutputOrder __should__ be included in PPD file, thus CUPS
should be ready to see this option in PPD file and do not broke it's
functionality. Moreover, *DefaultOutputOrder __should__ be included in
PPD file even "when the output order cannot be changed" (by the printer
itself, I believe).

Do sample PPD file in bug report wrong ? Google returns 334 matches for
'*OpenUI *OutputOrder:' request. There are several dozens of
PPD files with this UI block. Some of the printers, like Epson Stylus,
are cheap, I don't beleive they can print in reverse order by themselves.

The problem is that I need to switch output order with UI defined in
PPD file. Printer does NOT support reverse print by itself and has the
single output bin, thus I can not use *PageStackOrder option.

CUPS, or to be precise pstops, can do reverse print on printers which
can't do it themselves. Reverse print can be switched on with lpr
command line option, but I don't see a method to do it with PPD UI.
The *OutputOrder is intended for it, but it does not work. It is important, because modern applications do not run lpr, but use
CUPS API directly.





More information about the cups-devel mailing list