Add per-paper-size duplex information for CUPS printers
Categories
(Core :: Printing: Setup, enhancement, P5)
Tracking
()
Tracking | Status | |
---|---|---|
firefox81 | --- | affected |
People
(Reporter: nordzilla, Unassigned)
References
(Blocks 1 open bug)
Details
(Whiteboard: [print2020])
Attachments
(3 obsolete files)
We should be able to determine on a per-paper basis if the printer supports duplex printing for a particular paper size.
This patch will introduce a "supports duplex" member to the nsIPaper
interface along with an implementation for CUPS printers.
Ongoing list of example printer and duplex support for paper sizes.
Canon iX6800 series { paperCount = 33 } { duplexPaperCount = 21 }
duplex(true) media.custom_55 x 91mm_55 x 91mm
duplex(false) media.custom_55 x 91mm_55 x 91mm (Borderless)
duplex(true) 3.5 x 5″
duplex(false) 3.5 x 5″ (Borderless)
duplex(true) media.jpn_you6_98 x 190mm
duplex(true) Hagaki
duplex(false) Hagaki (Borderless)
duplex(true) 4 x 6″
duplex(false) 4 x 6″ (Borderless)
duplex(true) Envelope #10
duplex(true) Envelope You 4
duplex(true) Envelope DL
duplex(true) 5 x 7″
duplex(false) 5 x 7″ (Borderless)
duplex(true) A5
duplex(true) JIS B5
duplex(true) media.custom_200 x 148mm_200 x 148mm
duplex(true) 8 x 10″
duplex(false) 8 x 10″ (Borderless)
duplex(true) A4
duplex(false) A4 (Borderless)
duplex(true) US Letter
duplex(false) US Letter (Borderless)
duplex(true) US Legal
duplex(true) media.custom_10 x 12in_10 x 12in
duplex(false) media.custom_10 x 12in_10 x 12in (Borderless)
duplex(true) JIS B4
duplex(true) 11 x 17″
duplex(false) 11 x 17″ (Borderless)
duplex(true) A3
duplex(false) A3 (Borderless)
duplex(true) media.custom_329 x 483mm_329 x 483mm
duplex(false) media.custom_329 x 483mm_329 x 483mm (Borderless)
PDX3 FRONTIER { paperCount = 23 } { duplexPaperCount = 23 }
duplex(true) Envelope Monarch
duplex(true) Hagaki
duplex(true) 100 x 150mm
duplex(true) 4 x 6″
duplex(true) Envelope #10
duplex(true) A6
duplex(true) Envelope DL
duplex(true) 5 x 8″
duplex(true) JIS B6
duplex(true) Oufuku Reply Postcard
duplex(true) A5
duplex(true) CEnvelope 5
duplex(true) Envelope B5
duplex(true) JIS B5
duplex(true) media.custom_184 x 260mm_184 x 260mm
duplex(true) Executive
duplex(true) media.custom_195 x 270mm_195 x 270mm
duplex(true) ROC 16k
duplex(true) A4
duplex(true) US Letter
duplex(true) Foolscap
duplex(true) 8.5 x 13.4″
duplex(true) US Legal
PDX3 Wilderness { paperCount = 58 } { duplexPaperCount = 29 }
duplex(true) Envelope Monarch
duplex(false) Envelope Monarch (Borderless)
duplex(true) Envelope #10
duplex(false) Envelope #10 (Borderless)
duplex(true) A6
duplex(false) A6 (Borderless)
duplex(true) Envelope DL
duplex(false) Envelope DL (Borderless)
duplex(true) CEnvelope 6
duplex(false) CEnvelope 6 (Borderless)
duplex(true) JIS B6
duplex(false) JIS B6 (Borderless)
duplex(true) Statement
duplex(false) Statement (Borderless)
duplex(true) A5
duplex(false) A5 (Borderless)
duplex(true) CEnvelope 5
duplex(false) CEnvelope 5 (Borderless)
duplex(true) JIS B5
duplex(false) JIS B5 (Borderless)
duplex(true) Executive
duplex(false) Executive (Borderless)
duplex(true) media.custom_195 x 267mm_195 x 267mm
duplex(false) media.custom_195 x 267mm_195 x 267mm (Borderless)
duplex(true) 8 x 10″
duplex(false) 8 x 10″ (Borderless)
duplex(true) 8 x 13″
duplex(false) 8 x 13″ (Borderless)
duplex(true) media.custom_8.25 x 14in_8.25 x 14in
duplex(false) media.custom_8.25 x 14in_8.25 x 14in (Borderless)
duplex(true) A4
duplex(false) A4 (Borderless)
duplex(true) Folio (Special)
duplex(false) Folio (Special) (Borderless)
duplex(true) US Letter
duplex(false) US Letter (Borderless)
duplex(true) Foolscap
duplex(false) Foolscap (Borderless)
duplex(true) US Legal
duplex(false) US Legal (Borderless)
duplex(true) ISO SRA4
duplex(false) ISO SRA4 (Borderless)
duplex(true) 10 x 14″
duplex(false) 10 x 14″ (Borderless)
duplex(true) JIS B4
duplex(false) JIS B4 (Borderless)
duplex(true) 267 x 389mm
duplex(false) 267 x 389mm (Borderless)
duplex(true) 11 x 15″
duplex(false) 11 x 15″ (Borderless)
duplex(true) 11 x 17″
duplex(false) 11 x 17″ (Borderless)
duplex(true) A3
duplex(false) A3 (Borderless)
duplex(true) 12 x 18″
duplex(false) 12 x 18″ (Borderless)
duplex(true) ISO SRA3
duplex(false) ISO SRA3 (Borderless)
Reporter | ||
Updated•4 years ago
|
Comment 1•4 years ago
|
||
We could also begin by just pasting the printer's answer over all the paper sizes if we need the API to be ready and working before we have implementations. That might be preferable to give the frontend folks more time to use this information.
Reporter | ||
Comment 2•4 years ago
|
||
I'm finally getting back to this.
That's not a bad idea. It would preserve the same behavior that already exists and exposes the API to the front end. That way it could land first and shouldn't make any difference once the change gets more granular.
Reporter | ||
Comment 3•4 years ago
|
||
This patch adds a boolean to nsIPaper for whether duplex printing is
supported for that paper size on a given printer. To start simply, each
paper will reflect the printer's duplex support as a whole. This is no
different from the current setup which, has supportsDuplex as an
attribute of the printer itself. Part 2 will add more grandular info.
Updated•4 years ago
|
Reporter | ||
Comment 4•4 years ago
|
||
This patch adds a boolean to nsIPaper for whether duplex printing is
supported for that paper size on a given printer. To start simply, each
paper will reflect the printer's duplex support as a whole. This is no
different from the current setup which, has supportsDuplex as an
attribute of the printer itself. Part 2 will add more grandular info.
Updated•4 years ago
|
Reporter | ||
Comment 5•4 years ago
|
||
Depends on D87801
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Reporter | ||
Comment 6•4 years ago
|
||
Hmm, after compiling the list of duplex sizes in comment #0
It's looking bizarrely like the duplex sizes are tied to Borderless vs. Not Borderless.
This doesn't exactly seem like it would be accurate to me.
I'm going to continue investigating to see if I can get the values via an IPP method and see if that changes anything.
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Reporter | ||
Comment 7•4 years ago
|
||
The current implementation of duplex printing in Firefox is continuing to use a per-printer look-up, rather than a per-paper lookup.
It is not clear that a per-paper-size lookup is easily or readily achievable, nor is there a dire need for it at the moment.
In an ideal world, a printer that has multiple paper trays, some of which some support duplex printing and some don't, should be able to differentiate between the two, instead of reporting that the printer, as a whole, either does or does not support duplex.
The likelihood of such edge-case behavior occurring where a printer incorrectly reports duplex information based on differing paper tray capabilities seems low.
If problems should arise related to this behavior, we should continue investigating ways to get this information on a per-paper bases. For now, I am unassigning myself from this bug.
The existing patch that is attached to this bug was an attempt to propagate the singular printer duplex information to each paper size so that it is at least coming from the "right place" if we were able to get more granular information in the future, but this never landed. Making such a change now would also require changes to the front-end code (print.js
) to change where the duplex information is retrieved.
Updated•4 years ago
|
Updated•2 years ago
|
Description
•