I need to design printing part of the interface for desktop application. Now the application in question works with drawings of arbitrary size, and has no concept of page or page size. The output printer of course has some maximum page size. I would like to provide user with ability to tile the drawing across arbitrary number of pages. The trouble is there is very little software out there that does something similar like this and thus I'm having trouble figuring out what would be the most standard and intuitive way to do this. Should I have a special print preparation dialog before print preview/print dialogs. Or Should I go with some solution like Adobe Reader which uses a custom print dialog and disregards the standard OS dialog. Any sort of advice will be appreciated. I will be also grateful for any examples of an existing applications with similar functionality.
2 Answers
You could use a print preview screen.
A print preview page could show the enter image with dashed lines to represent where the page breaks would be when printing. Although not a drawing program Excel does something like this with dashed lines representing printed page sizes shown on the spreadsheet.
Or the print preview screen could show the drawing on separate pages like Safari's print preview. You might want to find out how the drawing is sent to the printer. It could be the program already makes separate images for each page. You could design your preview around what is available.
The print preview screen could have controls available to make adjustments or provide links to dialogs such OS specific dialogs for print setup.
eg: Firefox print preview screen
Excel (and I think other spreadhseet) preview page cutting by dotted line on the main view. If informations are well presented, the interaction is improvable : parameters are setted in a layout window (that you have to close to see the result).
IMHO custom print dialog is the worst idea (regarding to consitency). A pre-print dialog should not be a problem, and you should consider a way to by-pass it (such as the print button in toolbar).