Requirements for GtkPrintDialog
- Display a list of available printers to select from, and show some information about each of them:
- Printer name (from a short list of recently used printers)
- Printer name from a longer list of known printers (possibly catagorized/grouped by some local admin)
- Location
- Some indication how long the print job will take on that printer, e.g the length of the queue
- Online/Offline status (maybe offline printers should not be in the list ?)
- Some capabilities, e.g color or duplex
- Needs to offer way to print to a file in ps or pdf
- Optionally offer a print preview
PaoloBorelli: the print preview should probably be a separate widget not a dialog, for instance in gedit we are experimenting with embedding the print preview in the tab instead of using a separate dialog.
JodyGoldberg: Ideally the preview would be handle by evince to provide a consistent interface. Additionaly the preview should not generate the entire document in memory the way libgnomeprintui does. It must be done per page if we handle it directly, or to a disk if evince handles it.
StevenGarrity: Possibly incorporate the Print Preview thumbnail directly into the print dialog? (more detailed suggestion | MacOS X screenshot)
- Allow to select a subset of pages to print
- Allow to print multiple copies
- Allow to set up n-up printing
- Give access to settings that are not available on all printers like color, duplex, quality
Select a paper size using a list of known paper types grouped into manageable chunks. With the option to specify a custom size. Something based on ftp://ftp.pwg.org/pub/pwg/candidates/cs-pwgmsn10-20020226-5101.1.pdf seems like a good idea. That will give us a format to persist known and custom shapes. It will also give us a default grouping, and suggest default units to display. We can steal at least some of the widget from libgnomeprintui.
- Select margins and orientation.
- Storring Print settings
- The settings need to be stored in a way that applications can manipulate them without a gui. As an xls files contain print settings. To avoid duplication we need to be able store them on import.
- The key design flaw in libgnomeprint was that it treats each printer's settings as a pseudo-xml document. This was a terrible idea because the user loses their selections every time they switch printers. The storage mechanism needs to merge the user settings with the printers requirement and available settings. Additionally some backends (eg gfax) will want to specify additional required fields.
- Print to File PS/PDF. How do we plan to connect to cairo ?
A lot of discussion about revamping the print dialog occurred after the Linus flame-fest on desktop_architects, found at http://mail.gnome.org/archives/usability/2005-December/msg00021.html That should probably all be synthesiszed into here (whatever isn't already)