Printerpullpages

From Apache OpenOffice Wiki
Revision as of 19:59, 9 August 2009 by ChristophNoack (Talk | contribs)

Jump to: navigation, search
2009-06-14 printerpullpages logo.png

Introduction

Summary

A new printing UI should give us better performance, more ease of use and overall more customer satisfaction. New features like the instant preview in a print dialog as well as unified N-Up printing for all applications will bring OOo's print experience more up to current standards. Additionally system integration can benefit by making use of native print dialogs (for which the MacOSX implementation will be the prime example). The development is done in the CWS printerpullpages.

Comments, questions or feedback is welcomed on the ui@ux.openoffice.org mailing list.


The team working on the feature:

Role Name E-Mail Address
I-Team Lead Philipp Lohmann (PL) Philipp.Lohmann@Sun.COM
Developer

Philipp Lohmann (PL)
Andre Fischer (AF)
Thomas Lange (TL)
Niklas Nebel (NN)

Philipp.Lohmann@Sun.COM
Andre.W.Fischer@Sun.COM
Thomas.Lange@Sun.COM
Niklas.Nebel@Sun.COM

Quality Assurance Hasan Ilter (HI) Hasan.Ilter@Sun.COM
Documentation tbd tbd
User Experience

Christoph Noack
Frank Löhmann

christophnoack@openoffice.org
Frank.Loehmann@Sun.COM

Details

First let us see why we need a new print subsystem in OOo. Up to now printing for OOo's applications worked like this:

  • the user clicks on File->Print
  • a dialog pops up in which the user can enter the page range to be printed, the printer to be printed on, etc.
  • the application evaluates the data from the dialog, starts a print job and prints each page consecutively. After the last page is printed, the application finishes the print job.

This works but has some major drawbacks on the Mac platform:

  • On Mac the printed range has to be known before the native print dialog (usage of which is a requirement on this platform) gets started. Even when printing without a dialog the number of pages has to be known before the print job starts. However the system dependent print implementation cannot know this page range, because it is only known to the application.
  • The Mac print system then requests individual pages to be printed. These need not be in order or each page be printed only once due to the fact that when using the native print dialog a preview gets shown. To achieve this the Mac print system requests the current page to be previewed be printed. This is completely different to OOo's current print model.
  • The current workaround on the Mac is to “print” all pages of a document, but not output to the actual printer but keep a memory copy of the printed pages. These can then in the real print job be requested by the system in random order and as often as needed. This solution has obvious performance and memory footprint drawbacks

So for at least the Mac platform we need a more flexible print solution. This solution should have the following features:

  • pull instead of push pages: the print subsystem pulls pages a needed from the application, not the application pushes a number of pages to the print subsystem. On systems where printing is push based (Windows, Unix) the push behavior can be easily satisfied by an adaptor that pulls all pages and pushes each to the system consecutively.
  • Provide a print preview in the new dialog: the user should be provided with a preview of what his document will look like when printed out. This preview should take into account all available application specific print options which can up to now be accessed by the “Options...” button in the print dialog.
  • Be able to use native print dialogs and embed our print options into them, this benefits system integration.
  • Reuse existing technology when possible to keep the implementation effort low

Based on these requirements the following new model should be implemented:

  • printing migrates to a “pull” model where the print system pulls pages as required from the application.
  • A new generic (that is universal on all systems) print dialog gets implemented that features the entry possibilities of the old dialog as well as new features namely:
    • a print preview
    • all application specific print options (which are hidden on the “Options...” dialog in the old print dialog)
    • N-Up printing

Requirements

Scope of the Work

In Scope Out of Scope
  • Satisfy the user demands for a the use of native printing dialogs (e.g. on the Mac OS X platform)
  • Provide a high quality printing interface that is system independent
  • Add system independent N-up printing to overcome the drawbacks of certain printer drivers
  • Improve the overall interaction quality (e.g. workflow improvements, terminology, essential print options)
  • Create a fresh and usable interface for printing in OpenOffice.org
  • For all of the above: keep changes to limit that can be implemented for OOo 3.2. Further changes can wait for later version.
  • Additional functionality will not be added (besides the planned N-up printing)

Analysis of the Current State of Printing (OpenOffice 3.1)

Please refer to the page Current State of Printing (OpenOffice.org 3.1). It provides findings about the current state of printing in OpenOffice.org 3.1 by analyzing usage feedback data, workflows and printing dialog screenshots.

Use Cases

Use cases are an important tool for the design of both usable and efficient interaction concepts. Knowing the most common ones, the user interface can be optimized to satisfy the need of a large user base in many situations. Besides the user feedback data, we don't have any knowledge about how our users work with OpenOffice.org. So we asked experts, users and trainers to get some feedback on "the three most common use cases". We know that this data isn't statistically relevant, but we may get some insight which we currently don't have.

Questions to the mailing lists:


The file Printerpullpages_UseCases_CollectionOfFeedback contains the first collected feedback. If anybody wants to help to further collect/sort/analyse the feedback - that would be really great!

Competitive Analysis

Please note that although we do competitive analysis, we won't publish too many information here, e.g. screenshots due to legal restrictions. If you are interested in a special program, then try to search for images in your favorite internet search. In 99% of all cases, you will get some pictures and a first idea how it looks like ... and most presumably how it will behave.

Another good approach is to have a look at the official documentation of our supported platforms:

  • Apple User Interface Guidelines, The Print Dialog
  • Microsoft Windows User Experience Interaction Guidelines, Common Dialogs (scroll down a bit, since the print dialog is not listed in the TOC)
  • Linux Common Printing Dialog, Linux Printing UI Specification, specification created by the Linux Foundation OpenPrinting workgroup available in the OpenUsability.org wiki
  • OpenSolaris, Project: "Presto: Automatic Printing Configuration", UI Prototypes, contains some information about the Print Dialog


Please refer to the page Competitive Analysis. It collects information on special applications or general printing dialogs.

Requirements List

The following list contains the most important requirements to get started. Okay, these aren't real requirements, it is more like a what-feature-is-generally-desired list.

  • The new print functionality shall provide an native print dialog. As an alternative, a system independent print dialog is used.
  • The new print dialog shall provide all application specific print options which are necessary for most printing tasks.
  • The new print dialog shall provide a print preview. The visualization is updated immediately if print options are changed (immediately: time until final visualization <= 500 ms).

Technical Constraints

The following list contains the most important technical constraints which will have impact on the final interaction and dialog design.

  • Options: Especially the application specific options have to be "compatible" to be used in the native print dialogs. This refers to the overall number (space restrictions in the native print dialogs), the organization (it should be possible to define property groups), controls (limited use of graphical UI controls), layout (layouting is limited to what the operating system provides), ...
  • Size: Since printing is an ordinary task, the dialog should be usable on computers with low screen resolution (e.g. Netbooks with 576px height) and large screens (e.g. PCs)
  • GUI elements:
    • Non-standard controls: Since printing will provide some visual output, it is strongly desirable to use graphical controls (e.g. for the print order). Especially for embedding of application specific print options into native print dialogs this might cause problems, since a) it might be impossible, or b) it might create additional effort for porting.
    • Element "Group Box": Since OpenOffice.org 2.2 group boxes have been replaced by simple horizontal or vertical lines to divide dialogs. As a result, these group boxes aren't themed at the moment (themed: adapted to the visual style of the graphical user interface of certain operating systems).
  • Layout: Currently, there is no GUI layout manager available which resizes all dialog elements according the size of the screen and the size of each of the dialog's objects. Consequence: Static dialog layout which considers the space requirements for other languages.
  • Mac OS X Compatibility: OpenOffice.org is made to run on a variety of Mac OS X versions. Some of those provide a different feature set with regard to printing, so that there is a need for a compromise to satisfy most of the users.
    • 10.4 (Tiger): Application specific options can be integrated in the native print dialog, but there is no print preview available.
    • 10.5 (Leopard): Application specific can be integrated in the native print dialog, and a print preview can be made available.

Definition of Terms

Definitions for the use on this wiki page and the specification. They might be different to the final user interface terminology.

Term Description
System Independent Print Dialog A print dialog that is independent from the underlying operating system, since it is provided by OpenOffice.org. This dialog is used if either the native print dialog is not available or the user explicitly wants to use it instead of the native one. Besides the application specific options, it is required for the print dialog to handle also: printer selection, printer status text, print to file, copy count, collate, N-up printing
Native Print Dialog The native print dialog is the one provided by the operating system, e.g. Mac OS X. The advantage is the visual and behavioral consistency among all applications on the platform, but there are also technical constraints which limit the flexibility of the design.
Application Specific Print Options OpenOffice.org consists of several modules optimized for certain document types, e.g. word processing (Writer) or spreadsheet editing (Calc). For each of the document types the user may require special options which do only make sense with regard to a certain document type (e.g. printing of Notes). Most of these options are today (OpenOffice.org <= 3.1) available in the print options dialog and the tools options settings pages.
N-up printing N-up printing refers to multiple page printing, so that more than one document page (created in the application) is printed on the real paper page. Usually the user selects the number of pages to be printed, e.g. 2 on 1.
Print Preview A preview of what the document will look like when printed out. Therefore this preview should take as much as available print options into account. The print preview is given in the print dialog and therefore complements the page preview available in the file menu in some applications.

Design Proposals and Idea Collection

  • Please refer to the page Design Proposals. Based on requirements, it collects design proposals and rates them - maybe some of the proposals get integrated into OpenOffice.org.
  • Please refer to the page Idea Collection. It collects ideas which may later get evaluated and even integrated. You are invited to add your ideas!

Final Design

Please refer to the page History of Design Development. It contains the history of the design development of the Printing Dialog. Thus, you can see how the design evolved over time.

System Independent Printing Dialog

Module Independent Design Decisions

This section summarizes the basic design ideas which should be as consistent as possible for all the OpenOffice.org modules.

  • General structure of the printing dialog:
    • Structure options in tabs: We finally decided to use tabs, since the combination of "no layout manager" and the sheer number of options make it impossible to implement a behavior like on Apple Mac OS X. This would have been desirable, since the elements currently available in tab "General" would have been accessible all the time - without changing tabs.
    • Print Page Preview: The design decisions are described on the Design Proposals page.
  • Tab "General"
    • Group "Printer":
      • The design generally respects the "Microsoft Windows User Experience Interaction Guidelines". Reasons: a) the printer selection is improved for people having only few printing sinks (e.g. printer, PDF creator, fax), b) the largest part of our current user base still uses Microsoft Windows so we are consistent - for the other platforms there might be native printing dialogs in later versions.
      • The button "Preferences..." has originally been introduced to open the driver own printer settings on Microsoft Windows. For Linux still our own "automatically" created dialog will be opened; it may later be possible to move the settings to a more accessible place inside our dialog. For the Mac OS X platform there is no printer settings dialog - the button can be easily omitted to let the dialog look more clear.
    • Group "Printer details": The printer details are hidden since in many cases, a) the information isn't required (private users) and b) the information isn't provided (due to operating system, printing system and given settings). Then, we reduced the number of details since this was a very old design decision to respect each operating system with its different information. Other reasons are given on the wiki page Design Ideas.
    • Group "Range and copies": Slightly improved layout which is based on the original printing dialog, since we have to respect our existing user base. Combined "Range" and "Copies" to let it appear less cluttered.
    • Group "Print": Presents the most important print content settings for each module. This has been a requirement by the module owners, since the experience shows that most people aren't aware of the capabilities.
  • Tab "OpenOffice.org Module": The options of all modules have been classified according to their meaning. For details please refer to the page Analysis of the Current State of Printing (OpenOffice 3.1). The following groups have been defined and are used in the given order - but only if there are any options to show.
    • Group "Contents": Contains fine grained settings for enabling/disabling contents. The former options have been improved in their naming and analyzed for their usage frequency. As a result, some of them have been merged or omitted.
    • Group "Color": All color related settings can be found here.
    • Group "Size": Size related settings of either single objects or the whole print page are available here.
    • Group "Pages": Anything which might have impact on adding/removing whole pages is located here. The only exception are the settings for "right/front / left/back" page sides which is rather used for the Page Layout.
  • Tab "Page Layout":
  • Tab "Options":
    • Due to the low usage rate, the options has been moved here. Since this setting isn't visible when an other tab page is active, the print button states either "Print to file..." or "Print".

Module Dependent Design Decisions

Only for Calc there have been slight changes which resulted in "violating" the 

This section summarizes the most important changes

Status and Roadmap

Current State

OpenOffice.org 3.2

  • System Independent Printing Dialog: Provide a cleaned up and well described system independent printing dialog with new features for OpenOffice.org 3.2. The interaction design for the system independent printing dialog has to be finished until mid of August 2009.
  • Native Printing Dialog for Mac OS X: Provide cleaned up printer options for Mac OS X.
  • Basic workflow improvements ("Warning Print Options Dialog (Title "Warning Print Options")", "Warning Transparency Dialog (Title „Warning“)")

OpenOffice.org Later

If there are interesting ideas how to further improve printing in OpenOffice.org, then the development might continue for future version of OpenOffice.org.

  • Native Printing Dialog for GTK: Philipp said that Caolan, a guy working for RedHat, offered some help to bind the native print dialog in Gnome (GTK). He already blogged about that since quite a long time: 2005-07-28 gnomeprintui, 2009-07-23 New Print Dialog.
  • Native Printing Dialog for Linux: Work with the people from the Linux Foundation OpenPrinting workgroup. First contact has been established since 2009-07-09 with Till and Peter.
  • Old Stuff: Solve the remaining issues described on our page Current State of Printing (OpenOffice.org 3.1).
  • New Stuff: Evaluate new ideas based on our page Idea Collection.

Mockups and Screenshots

This section contains mockups and screenshots:

  • Mockups are working models used for demonstration purposes. There is no real functionality at all, because the following pictures have been composed with graphic programs just to get a first impression how it will look like.
  • Screenshots show the behavior of the real development in OpenOffice.org. Those pictures are updated more or less regularly.
Printerpullpages nup current.png
Screenshot showing the current state of the N-Up tab page in the system independent print dialog.
2009-08-09 PrintingDialog SomehowRealisticVersion.png
Mockup showing the current design of the "General" tab page for Calc.

Online Discussion, Press Coverage and Comments

Personal tools