|Please note that the wiki page is under heavy development. It may be helpful to check back regularly... Thanks for you patience!|
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 firstname.lastname@example.org mailing list.
The team working on the feature:
|I-Team Lead||Philipp Lohmann (PL)||Philipp.Lohmann@Sun.COM|
Philipp Lohmann (PL)
|Quality Assurance||Hasan Ilter (HI)||Hasan.Ilter@Sun.COM|
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
Scope of the Work
|In Scope||Out of Scope|
Analysis of the Current State of Printing (OpenOffice 3.1)
Printing Features and Options
Currently, there are many options in OpenOffice.org with regard to printing. When looking at the technical constraints (e.g. native dialogs vs. system independent dialog, application settings vs. operating system settings), the space restrictions, ... it seems to make sense to have a look at the current options. Is each option really necessary, can it be well understood? Most of the data is currently provided in several Calc documents which get (hopefully) updated regularly.
- File:Current Dialogs ListOfAllPrintDialogElements.ods: List of all printing dialog elements and options with regard to their meaning, understandability and necessity. It also includes developer comments, which I have to thank for. Worth reading and commenting ;-) Currently, this is the most important document on this page.
- File:2009-07-04 UserFeedbackData PrintingAnalysis.ods: Based on the first User Feedback Data there is a short analysis considering Writer, Impress, Draw and (partly) Math. Please note that the User Feedback system still has the drawback that some of the sources of function requests can not be identified. Elements that are ambiguous (to me) are marked with '???'.
- File:Current PrintingOptions SettingsInDocumentFiles.odt: This document summarizes all printer dialog related settings which are stored in the native OpenOffice.org files (settings.xml). As far as the settings could be identified, they have been transferred to the file “List of all Print Dialog Elements”. Issue: Even for the same module (e.g. Writer), only a subset of all options is saved in the document.
This is just an early preview how the printing dialog is used.
Note: The data is based upon a previous version of "2009-07-04 UserFeedbackData PrintingAnalysis.ods", so please read the description how the data has been acquired.
The sum OK and Cancel events are the reference for the number of uses for the dialog. Then, for each of the printer dialog elements the usage frequency is calculated on that data. The usage frequency is given by all events of each element (e.g. more/less/modify for spin fields) which will lead to inconsistencies (unknown until we can analyse the exact sequence of how elements were used). Nevertheless, for all modules (if possible) the average and standard deviation have been calculated. Date of creation 2009-07-05.
|Module||Name||Average [%]||Standard Deviation [%]||Comments / Finding|
|Only for Impress, the part of Cancel is extreme (21,3%). Why?|
|All Modules||Number of copies||
|The usage of Number of copies is slightly higher for Writer and Draw. (But, all events count.)|
|All Modules||None (Pages Text Field)||
|In Impress and Draw, properties are set twice that often.|
|Impress||Slides per page||
|refer to OK|
|In Impress, the options are far more used (4 times as much in comparison with Writer and Calc).|
|All Modules||All pages||
|Writer, Impress, Draw||Selection||
|All Modules||Print to file||
|In Impress, the need for help is maximal (0,3%).|
The following selection workflows descriptions are used to analyze the strengths and weaknesses of OpenOffice.org printing. These workflows are not selected according their occurence, they are just meant to be examples to better understand printing.
|Name||Steps and Finding|
|User prints in Draw directly||
|User prints a poster in Draw||
|User prints to file||
- The printing system is very flexible, but sometimes complicated and complex!
- We have far to many modal dialogs!
- Each print (warning) dialog looks different!
- We have inconsistent options!
This section is intended to show some of the places where OpenOffice.org provides functionality or options concerning printing. You may see that it is not just related to the printing dialog, so that we have to keep an eye on consistency. And if you look very closely, the current user interface isn't that consistent and (maybe) understandable, so please refer to Printing Features and Options
Print Options Dialogs
Various Printer Dialogs
Various Printer Warning Dialogs
PDF Export Dialog
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:
- Start of thread on ux-discuss: CWS printerpullpages by Christoph
- Start of thread on de-users: Neuer Druckdialog in 3.2, Top 3 Anwendungsfälle by Regina (German), Thread-View
- Start of thread on de-dev: Neuer Druckdialog in 3.2, Top 3 Anwendungsfälle by Regina (German)
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!
Please note that although we do competitive analysis, we won't publish too many information here, e.g. screenshots. 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 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
Information on special applications or general printing dialogs is collected on the separate wiki page Competitive Analysis.
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).
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.
|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.|
System Independent Print Dialog
The Dialog Itself
| Automatic Dialog Resizing
Currently, the size of the dialog is limited by the use of netbooks which only feature a very low vertical screen resolution. It would be desirable to have some kind of resizing of the dialog, so that we could provide a full dialog at the current OpenOffice.org 3.0 system requirements resolution of 1024x768 and a smaller version providing the same functionality for low resolution displays.
Answer by Philipp: Theoretically, this is possible, but it would create effort which I would like to avoid. (E-Mail to Christoph, 2008-06-16, 11:17am)
Selecting the Printer and Providing Printer Information
Requirements (only new ones): If the user selects a printer for output, then the system should present meta information to the printer during the selection. (meta information: e.g. name, status, type, location, comment).
- According to Philipp, gathering the meta information might cause problems in large network environments. When using Windows or Linux, each of the available (network) printers has be "installed" to be usable for printing. On Solaris, things are pretty different, since all of the available printers (up to thousands) will be made instantly available. That would mean querying a lot of printers at the same time ... The OpenSolaris Presto GUI spec (see Competitive Analysis) does not mention such a problem, but maybe OpenOffice.org behaves different.
Visualization of Printed Pages in the Print Preview
- The system should make efficient use of screen space. (Example: Resizing of the dialog should resize the preview accordingly).
- If the print print preview calculation and drawing requires a long time, then the system should provide sufficient feedback. (long time: >= 200 ms; sufficient feedback: e.g. a progress element in the middle of the print preview page)
- The system should explain the print preview, if the content could cause confusion by the user. (Example: Calc might cause empty pages for certain print ranges, why not explain why the page is empty?)
- The system should provide a high quality graphics output for the visualization. (high quality visualization: e.g. fast and flicker free drawing, smooth changes between portrait and landscape formats, ...)
- Explicitly not required: preview which can be manually zoomed by the user
- The system must make it possible to navigate one print page forward.
- The system must make it possible to navigate one page backward.
- The system should provide a function to jump to a certain print page.
- The system must provide an information about the number of printed pages.
- The system must provide an information what print page is visualized.
- The system should provide an information which can be understood with low effort. (Example: Visual representation that the currently shown page is at about the half of the full print page stack.)
- The system should provide a function to navigate to a certain print page. (Example: Entering the print page number.)
- The system should minimize effort for navigating between subsequent print pages. (Example: Both minimizing mouse travel and providing large controls for forward / backward navigation.)
Control Elements (some comments not to get lost):
- Horizontal scroll bar: Scroll bars satisfy many of the requirements but have to be used for continuous content. If they are used for other things, we may get publicity soon ... on same “bad UI design web pages” ;-).
- Slider: There is a slider available in OpenOffice.org which is currently used for the media player. In the current state, this element shouldn't be used – it seems to lack basic things like keyboard navigation or proper “flicker free” visualization. Nor is it themed for different operating systems. In general, it is hard to select individual pages and the area for “grabbing” the control is very small. Otherwise, they provide excellent feedback about the position inside the document.
work in progress: writer's page preview is kept, but the N-Up configuration of the "page preview" gets removed completely. The general N-Up printing facility now provides this functionality. Additionally the "print preview" button gets its text replaced by "print document" as you do not print the page preview, but the document the page preview is a viewing.
Status and Roadmap
It is planned to provide a new basic dialog in OpenOffice.org 3.2. So the interaction design should be finished until end of June 2009. Hopefully ;-)
Now delayed to end of july. However the current implementation is basically "final" that is what will be done before CWS printerpullpages gets integrated.
Specification document: tbd
- The development happens since quite a few months. Recently, User Experience jumped in and will try to further improve the dialog and the overall workflow concerning printing.
- Development versions: Development versions can be found at ftp://qa-upload.services.openoffice.org/printerpullpages/
- Issue Tracker: All issues with an descriptive entry “printerpullpages” can be listed with Extended Issue Tracker Query
- EIS: The EIS entry for “printerpullpages” is located at http://tools.services.openoffice.org/EIS2/cws.ShowCWS?logon=true&Id=7202&Path=DEV300%2Fprinterpullpages
If there are interesting ideas how to further improve printing in OpenOffice.org, then the development might continue for future version of OpenOffice.org.
Philipp said that Caolan, a guy working for RedHat, offered some help to bind the native print dialog in Gnome (GTK). Some years ago, he already blogged about the gnomeprintui.
|???||I-Team Specification||Replace Print Preview Printing||Accepted||Currently, Writer provides very flexible N-up capabilities. This should be made available to all applications – via the new print dialog.|
|???||I-Team||Improve Workflows||New|| Besides the printing dialog, the concepts and the handling of printing options is difficult in OpenOffice.org (currently we just provide a list of options which have to be combined in a useful manner – here the user has to know exactly what to do).
Another example is the work-flow breaking dialog handling when printing. More information can be found in the blog post Transparent Decision Making.
So this is no real “idea”, it is more a reminder to keep an eye on that.
|2009-06-11||I-Team||Contextual Information Bar||New|| As discussed in “Improve Workflows”, there are currently a number of modal dialogs which might interrupt the workflow. So how about a contextual information bar which informs only (e.g. for wrong page sizes, transparency, gradients, ...)? How about adding a contextual information bar in the dialog itself...
On the other hand, it would be better to get rid of all these additional informations, warnings and decisions. Open Questions:
|???||I-Team||Harmonize printing and PDF export||New||Currently, the capabilities of printing and PDF export differ a lot (Example: There is no way to export handouts in Impress.) Why not harmonize that?|
|2009-06-14||I-Team||Printer Presets||New||Currently, we provide a lot of printer settings which have to be combined by the user. Generally, users use only a small number of combinations, since they are editing similar documents. So they might just use settings for "draft" or "final output". Print settings which could be customized could help here (costomized: edited, saved, loaded, deleted). Some competitors already offer this kind of functionality.|
|2009-06-14||Regina||multiple copies of a one page document on one paper sheet||New||Use case: You need a lot of DIN A5 sheets to distribute flyers or for to give the sheets to your pupils in your classroom. You write a DIN A5 document. But DIN A5 paper is more expensive than DIN A4 paper. So you want to print the same document twice on a DIN A4 paper. That is not possible up to now. Besides the Issue 67687 , have a look in the internet forums, you see that people are searching for that feature but get only workarounds or have to buy special software. For example http://www.oooforum.org/forum/viewtopic.phtml?t=65019 or http://www.oooforum.org/forum/viewtopic.phtml?t=30747 or the workaround for Word http://www.gmayor.com/print_multiple_copies.htm|
|2009-06-16||Regina||Assistance for envelope printing||New||Printing envelopes still belongs to the tasks which most failures. OOo should use informations about the printer (for example from the PPD-file) to help the users. For example, OOo can show how to insert the envelop, or show, what position the envelope must have compared with the standard paper sheet.|
|2009-07-04||Christoph||Merge change tracking and notes||New|| Issue: In Writer, currently there is no common handling for the printing of Notes or handling of Change Tracking. If tracked changes are enabled in the document, they are also printed. There is no way to enable/disable these „reviewer markups“.
Proposal: Maybe something to change/merge for further releases? Open Question: Maybe also Calc is affected, since it also supports change tracking.
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.
Current state of the N-Up tab page in the system independent print dialog.
|An initial draft mockup, just to let you know that we are working on something ;-) Many of the implemented proposals are still in discussion...|
|A draft mockup, still many things are in discussion...|
| An early mockup. Some comments:
| Changes in comparison to last mockup:
Changes in comparison to last mockup:
Changes in comparison to last mockup: