CommonPrintingDialog

Differences between revisions 12 and 13
Revision 12 as of 2008-05-14 11:20:30
Size: 6061
Editor: p54BEF1F5
Comment:
Revision 13 as of 2008-05-14 14:42:27
Size: 7288
Editor: p54BEF1F5
Comment:
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
 * '''Packages affected''':  * '''Packages affected''': GNOME/GTK and KDE/Qt libraries, OpenOffice.org, Thunderbird
Line 40: Line 40:
It has an all-time visible preview, quick preset buttons (for things like "Draft", "Office document", "Photo", "Booklet", ...) It has an all-time visible preview, quick preset buttons (for things like "Draft", "Office document", "Photo", "Booklet", ...), and detailed printing options can be shown or hidden by category ("Paper handling", "Resource saving", "Finishing", ...).

General info about the UI design of the Common Printing Dialog:

    * [http://www.mmiworks.net/eng/publications/labels/openPrinting.html Peter Sikking's Blog about the Common Printing Dialog]
    * [http://wiki.openusability.org/printing/ OpenUsability printing Wiki]
    * [http://wiki.openusability.org/printing/index.php/Specification UI design specification]

The interface between the applications and the dialog will be done via DBUS. It will be written a glue code which replaces/patches the libraries which the applications call to open their original printing dialogs. This glue code calls the Common Printing Dialog via DBUS then. With this glue code we do not need to modify all applications. Making the glue code for KDE/Qt, GNOME/GTK, and OpenOffice.org will switch most applications to the new printing dialog. Note that the newest version of Firefox already uses the GTK printing dialog, so Firefox will also be covered by modifying the libraries for GNOME/GTK applications. Perhaps Thunderbird needs to be modified, too.

Extensions for PPD files are designed to support advanced UI functionality as needed by the drivers (printer manufacturers). First of all, the custom PPD options as described in the documentation of CUPS will be used, to allow numerical parameters, strings, passwords, ... as printing options. There will be also definitions for the quick presets, the categories to which the options belong, and UU-encoded icons and logos. Printer manufacturers and independent driver projects will use this functionality to present the options of their drivers/printers on the dialog.

    * [http://www.linux-foundation.org/en/OpenPrinting/Specifications Specifications for PPD extension and application/dialog interface]
    * [http://www.linux-foundation.org/en/OpenPrinting/Requirements Requirements for the Common Printing Dialog]
    * [http://portland.freedesktop.org/wiki/PrintDialog Portland project]
Line 44: Line 58:
Instead of hacking all applications we should have a common printing dialog and the apps should have a common interface to use it. This is one of the main projects of OpenPrinting at the Linux Foundation. This summer the dialog will be implemented by two Google Summer of Code students, to get finished in time for the feature freeze of Intrepid.

General info about the Common Printing Dialog:

    * Peter Sikking's Blog about the Common Printing Dialog: http://www.mmiworks.net/eng/publications/labels/openPrinting.html
    * OpenUsability printing Wiki: http://wiki.openusability.org/printing/
    * UI design specification: http://wiki.openusability.org/printing/index.php/Specification
    * Specifications for PPD extension and application/dialog interface: http://www.linux-foundation.org/en/OpenPrinting/Specifications
    * Requirements for the Common Printing Dialog: http://www.linux-foundation.org/en/OpenPrinting/Requirements
    * Portland project: http://portland.freedesktop.org/wiki/PrintDialog

We have two Google Summer of Code students working on the project:
This summer the dialog will be implemented by two Google Summer of Code students, to get finished in time for the feature freeze of Intrepid.
Line 65: Line 68:
The idea of the Common Printing Dialog designed by OpenUsability was brought in on the OSDL Printing Summit in April 2006 and work was continued on subsequent Printing Summits: All changes will be applied upstream, as the project is intended for all distributions. One of the first distros featuring it should be Intrepid. The Google Summer of Code ends in the end of August, when Intrepid will have feature freeze.
Line 67: Line 70:
https://www.linux-foundation.org/en/OpenPrinting/MeetingInfo




 * create a general libubuntucups and libubuntucupsui ?!
   * working together with the KDE/Gnome/Xfce-guys seems to be a better idea.

 * gnome-cups-manager has to be hacked
 * kdeprint has to be hacked
 * xfceprint has to be hacked
 * Firefox, Thunderbird and OpenOffice have to be hacked
 * make non-free programs (like Adobe Reader) use gtkLP, which also has to be hacked, if possible.

 * ensure that all aplications use our printing system

 * All cups possibility have to implemented (like encrypted admin communications between clients/server)
Currently, we are developing the specs. The first prototype of the dialog and the final specs will be presented to the Japanese printer manufacturers on the OpenPrinting Meeting on the next Linux Foundation Japan Symposium in Tokyo on July 8 by Till Kamppeter and Peter Sikking. Peter Sikking will present the dialog also to the GNOME developers on the GUADEC in Istanbul.
Line 93: Line 80:
== Acknowledgments ==

We thank HP, Konica Minolta, Epson, and Canon for the financial support of OpenPrinting. We also thank Epson for funding Peter Sikking's travel to Tokyo and Istanbul. We thank Google for funding the student projects.

Summary

All applications must have the same print dialogs with the same parameters to adjust. All systems (Kde/Gnome...) must manage cups printers in the same way. System printers and parameters and also users parameters must be manageable.

The idea of the Common Printing Dialog designed by OpenUsability was brought in on the OSDL Printing Summit in April 2006 and work was continued on subsequent Printing Summits:

https://www.linux-foundation.org/en/OpenPrinting/MeetingInfo

The Common Printing Dialog is one of the main projects of OpenPrinting at the Linux Foundation, coordinated by Till Kamppeter, manager of OpenPrinting.

Rationale

If a user knows how to print out of application A he will also know how to print from application B. He also will have access to all the features of his printer and of CUPS from all applications.

Use cases

  • LaserStar Electronics in Japan wants to publish Linux/Unix printer drivers for their wide range of printers, beginning from 30-EUR-cheapo inkjets over 256-ink high-end photo-printers, up to 30-pages-per-second color laser office multi-function devices. They want that all users have easy access to the full functionality of their devices from all applications. Their devices support Locked Print (user can only pick up his printout when entering a password which she has send with the job, so that Lea cannot see Lisa's confidential printout), color adjustment (numerical parameters), fax (phone number), ... And they want to place their logo in the printing dialog.

  • Lisa wonders why she can't change the printing settings in Firefox and Thunderbird.
  • Lea from Germany likes the fact that OpenOffice.org's printing dialog offers her so many options, but she wonders why all the options are in English. Furthermore she thinks that it isn't very easy to use.

  • Lara wants to print a photo in gThumb. After that she wants to print some notes in gedit and some labels using gLabels. She dislikes the fact that she has to change the resolution for every task using system-config-printer.
  • Laura has an Epson printer. She wants to know the ink-level and clean the heads, if necessary. She finds out that this can be done using escputil, which is included in Gutenprint. She installs escputil via apt and also finds out about mtink, which has an ugly GTK1-GUI, that doesn't suit to her KDE-Desktop. She would like to have the features of escputil in system-config-printer. She also thinks it would be nice for new users to have a button in every printing dialog for doing these advanced tasks.
  • Lena has installed Adobe Reader from Multiverse. She wonders what a printing command is.
  • Bob and Jane wonder why there are some many names beginning with "L"

Scope

All desktops on all Posix-style operating systems. As a first step we will cover at least KDE and GNOME.

Design

OpenUsability has designed a GUI for the Common Printing dialog during the last two years. It is based on paper prototyping, discussion on Printing Summits, surveys, and the work of usability and user interaction specialists.

It has an all-time visible preview, quick preset buttons (for things like "Draft", "Office document", "Photo", "Booklet", ...), and detailed printing options can be shown or hidden by category ("Paper handling", "Resource saving", "Finishing", ...).

General info about the UI design of the Common Printing Dialog:

The interface between the applications and the dialog will be done via DBUS. It will be written a glue code which replaces/patches the libraries which the applications call to open their original printing dialogs. This glue code calls the Common Printing Dialog via DBUS then. With this glue code we do not need to modify all applications. Making the glue code for KDE/Qt, GNOME/GTK, and OpenOffice.org will switch most applications to the new printing dialog. Note that the newest version of Firefox already uses the GTK printing dialog, so Firefox will also be covered by modifying the libraries for GNOME/GTK applications. Perhaps Thunderbird needs to be modified, too.

Extensions for PPD files are designed to support advanced UI functionality as needed by the drivers (printer manufacturers). First of all, the custom PPD options as described in the documentation of CUPS will be used, to allow numerical parameters, strings, passwords, ... as printing options. There will be also definitions for the quick presets, the categories to which the options belong, and UU-encoded icons and logos. Printer manufacturers and independent driver projects will use this functionality to present the options of their drivers/printers on the dialog.

Implementation

This summer the dialog will be implemented by two Google Summer of Code students, to get finished in time for the feature freeze of Intrepid.

1. Lars Uebernickel will implement a DBUS-based interface for the Common Printing Dialog http://code.google.com/soc/2008/linux/appinfo.html?csaid=53E53CD78F134BE9

2. Alexander Wauck will implement the GUI of the Common Printing Dialog itself http://code.google.com/soc/2008/linux/appinfo.html?csaid=9D65D29842F34550

Jonathan Riddell will be the principal mentor of the two. Co-mentoring will be done by Till Kamppeter and others.

All changes will be applied upstream, as the project is intended for all distributions. One of the first distros featuring it should be Intrepid. The Google Summer of Code ends in the end of August, when Intrepid will have feature freeze.

Currently, we are developing the specs. The first prototype of the dialog and the final specs will be presented to the Japanese printer manufacturers on the OpenPrinting Meeting on the next Linux Foundation Japan Symposium in Tokyo on July 8 by Till Kamppeter and Peter Sikking. Peter Sikking will present the dialog also to the GNOME developers on the GUADEC in Istanbul.

Code

Data preservation and migration

Outstanding issues

BoF agenda and discussion

Acknowledgments

We thank HP, Konica Minolta, Epson, and Canon for the financial support of OpenPrinting. We also thank Epson for funding Peter Sikking's travel to Tokyo and Istanbul. We thank Google for funding the student projects.


CategorySpec

CommonPrintingDialog (last edited 2010-05-07 08:24:14 by p5DDB9EB9)