Open Bug 650957 Opened 11 years ago Updated 1 year ago

Audit and redesign our additions to system print dialogs


(Toolkit :: Printing, defect)

Not set




(Reporter: zwol, Unassigned)


(Blocks 1 open bug)


(Keywords: uiwanted)


(4 files)

All three primary platforms give us the ability to add knobs to the system-provided print dialog box.  We are taking advantage of that, but not in a principled, someone-who-knows-from-UI-designed-this sort of way.  We should redesign these additions, and then spin off platform-specific bugs to reimplement them (unfortunately, they have to be coded separately for each OS, using low-level OS GUI-toolkit code).

We should also audit to make sure we're taking full advantage of the platform print dialogs' capabilities.  For instance, the Mac dialog can show a live preview of the document to be printed, but we're not using that at all.
Depends on: 678600
Adding Yuan, since she's been working on this.
Keywords: uiwanted
Blocks: 947125
Keywords: uiwanted
I'd rather get rid of the native dialogs, and combine the print dialog into print preview, like Chrome and MS Office 2010+ do.

Chrome has a very nice UI, which combines Print Preview, Page Setup and Print, all in one large tab-modal overlay.

In the sidebar on the left, Chrome lets you print, select the printer, the pages to be printed (including ranges like "1-5, 8, 11-13"), the number of copies, portrait/landscape, color/black & white, margins (which can be adjusted by drag and drop), and options to print headers & footers, and to print background colors&images.

(There are two things Chrome doesn't do: You can switch headers & footers on or off, but can't customize them. And Chrome can't scale the print output. You can only zoom the print preview.)
The number of options in Chrome's print UI depends on whether or not you have "Print as PDF" or an actual printer selected.
Word 2013 (and Excel, Outlook, etc.) also has the Print dialog integrated into Print Preview. The old Page Setup dialog is still available, but the most important options like paper size, orientation and margins are available on the main sheet already.
I currently try to fix the current infrastructure to work correctly and then extend to add the necessary APIs for selecting Paper and even Printers in a sane way. This means we should end up with native dialogs if requested by Printing Prompt Service or enough API to do it by XUL.

Currently I try to fix some GTK Bugs with Bug 968753 and clean up the code. Actually storing settings you do in the native dialogs, preselecting last printer, paper. However the GTK PageSetup Dialog has some annoying problems. Like either keeping the printer or selecting a paper. On the other hand it works async. While the Print Dialog can be extended quite easily. The Page Setup Dialog isn't build that way.

More or less Firefox Win32 and Linux can already support a Chrome like PrintPreview with it's APIs.
Bug 650966 shows my progress on this for an inhouse addon (PrintPreviewPlus) I wrote this addon to solve this and other problems I have with the current code, like missing css3 paged media support.

A missing piece is sane cross platform paper selection. For Win32 I currently use js-ctypes to query the paper in that addon. However I plan to contribute the necessary code to do paper querying for GTK and Win32.  I have already some design ideas and will start on that after I finished tidying up GTK code. However except Zack there seem to be only very limited interest in printing.
You need to log in before you can comment on or make changes to this bug.