HP' s original intention was having these variants for each paper size
(you get this with the pure upstream code without applying the script):

1. Standard size, like "A4" giving smallest possible non-fullbleed margins. 
These sizes are the default sizes
2. Duplex sizes, like "A4.Duplex" having larger upper and lower margin to allow 
for printing suplex with duplex units of HP's inkjet printers. It is required 
to choose one of these paper sizes to be able to print duplex.
3. Full-bleed sizes, like A4.FB allowing borderless printing. To overcome 
tolerances in the paper size and printing mechanics some overspray (printing 
larger than the actual paper) Is done, meaning small image info loss at the 
borders (but the same happens if photos are printed borderless in a lab).

This was leading to an awkwardness about using duplex, as users had to
switch to a .Duplex paper size to be able to print duplex and the
CUPS/PPD mechanism did not allow for doing this automatically. So users
complained that duplex did not work and I came up with the script, which
worked great for many years.

The script changes paper size naming in an automated way:

A4 -> A4.SM (small margins)
A4.Duplex -> A4 (and now this being the standard paper size)

Problem is how to do this automatically, so that there are no patches
needed which need to be changed all the time when new printers get
added. The script needs to rename the paper sizes and skip printers
which do not support duplex and it has to also rename the UIConstraints
for duplex, and all that ideally without fully interpreting the .drv
file.

This got a challange when HP started having printer series with some
non-duplex and duplex printers and making use of nested {} to list the
non-duplex paper sizes once for all printers of the series and add the
duplex sizes only for the duplex printers. This makes the correct
renaming impossible for all the printers of the series.

Perhaps we need to remove the script to return to upstream reality with
the original awkwardness (perhaps this could be the SRU for Xenial) and
for a more sophisticated solution pre-build all PPDs, edit them with a
script to rename the paper sizes, and then either compress the PPDs with
pyppd for shipping or look whther CUPS has a tool to reverse-compile
PPDs to a .drv file, to generate the new .drv file this way.

WDYT?

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1568996

Title:
  Duplex printing does not work properly for HP printers

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/hplip/+bug/1568996/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to