Printing

Differences between revisions 21 and 23 (spanning 2 versions)
Revision 21 as of 2012-08-31 14:50:41
Size: 9525
Editor: mpt
Comment: System Settings should open the separate jobs window for each printer
Revision 23 as of 2014-01-08 15:24:43
Size: 10714
Editor: mpt
Comment: + anchor
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
== Printer properties ==
Line 8: Line 10:
== Icon for a printer == === Icon for a printer ===
Line 13: Line 15:

<<Anchor(listing)>>
=== Listing manual vs. broadcast printers ===

(bug Bug:314408)

||<tablestyle="float:left;margin:0 1em 1em 0" style="border:none">{{attachment:printers-listed.png}}||

Ubuntu can use printers that are set up manually, and printers that are broadcast by a remote Cups server. Broadcast printers are a security issue: An attacker might set up a printer nearby with a name that seems to be associated with your organization, tricking you into printing confidential information to that printer. (A similar issue exists with [[https://wiki.ubuntu.com/Networking#wi-fi|Wi-Fi networks]].)

To avoid this, we should not [[http://screenshotsofdespair.tumblr.com/post/49449036514/aslaneatsapples-i-dont-even-know-anymore|ask people whether they “trust” a printer]]. Instead, whenever available printers are listed, they should be listed in up to two sections:
 * Whenever at least one manually configured printer is available, a section beginning with an insensitive item, “Configured printers”.
 * Whenever at least one broadcast printer is available, a section beginning with an insensitive item, “Discovered printers”.

Matthew Paul Thomas, Canonical

This is an incomplete but living specification for how printing should work in Ubuntu. Eventually it will cover printer setup, settings, the Print dialog, and event notifications.

Printer properties

Icon for a printer

In theory, a PPD can provide a customized icon representing that particular printer model. In practice, hardly any printers do.

For the purpose of this specification, a printer’s icon is the custom icon in the PPD if there is one, otherwise a generic printer icon. In either case, the icon should be overlaid with an error emblem if the printer has an error; otherwise the Warning /!\ warning icon if the printer is low on paper or supplies.

Listing manual vs. broadcast printers

(bug 314408)

printers-listed.png

Ubuntu can use printers that are set up manually, and printers that are broadcast by a remote Cups server. Broadcast printers are a security issue: An attacker might set up a printer nearby with a name that seems to be associated with your organization, tricking you into printing confidential information to that printer. (A similar issue exists with Wi-Fi networks.)

To avoid this, we should not ask people whether they “trust” a printer. Instead, whenever available printers are listed, they should be listed in up to two sections:

  • Whenever at least one manually configured printer is available, a section beginning with an insensitive item, “Configured printers”.
  • Whenever at least one broadcast printer is available, a section beginning with an insensitive item, “Discovered printers”.

“Printers” settings

The “Hardware” category of System Settings should have a “Printers” panel. The panel should list available printers, and show status and settings for the selected printer.

settings-overview.png

Erratum: The “Jobs” item should not be present in the menu.

If you choose “Show Jobs”, the jobs window for that printer should open (if it is not open already) and take focus.

As much as practical, the controls in the “Copies & Pages”, “Job Details”, “Color”, and “Finishing” sub-panels should be presented in the same way, and in the same order, as the equivalent controls in the Print dialog.

Adding a printer

(Cups event: printer-added)

A printer may be plugged in and recognized automatically, or manually added through system-config-printer.

If a new printer is plugged in and recognized automatically while a Print dialog is open, the dialog should update to select it as the printer for that print job.

If a new printer is plugged in and recognized automatically while the Printers panel of System Settings is open, the list of printers should scroll to show the new printer, and it should be selected in the list.

If a new printer is plugged in and recognized automatically while neither a Print dialog nor System Settings (any panel) is open, System Settings should open to the Printers panel, the list of printers should scroll to show the new printer, and it should be selected in the list. (This is analogous to a USB storage device window opening when it is connected.)

Removing a printer

(Cups event: printer-removed)

TBD: If you have jobs queued on the printer you’re removing, the confirmation alert should let you move them to another printer.

There should be no notification when you remove a printer. If a Print dialog is open when you remove a printer, it should disappear from the list of printers. If that printer was selected, the dialog should revert to the default printer.

Printing

(Cups event: connecting-to-device)

printing-launcher.png

Whenever you queue a print job, if the jobs window for that printer is not open already, it should open minimized. Each printer in this state should appear as its own application in the Launcher.

The name of the Launcher item (as shown in its tooltip) should be the name of the printer. The icon should be the icon for the printer, including any emblem showing state. When any jobs are queued or printing, the icon should also have a standard Launcher badge with the combined number of jobs. And if all non-cancelled jobs have been successfully completed, it should have a green checkmark emblem. (The window should not close by itself, though you can close it at your leisure.)

Each printer Launcher item should have a quicklist menu, containing a “Pause” item, followed by an item of the form “Cancel 1 Job” or “Cancel All 14 Jobs”.

When a version of Ubuntu implementing this Launcher item is installed, com.canonical.Unity.Panel systray-whitelist should be rewritten to remove scp-dbus-service (because the system-config-printer notification area item is no longer needed).

Something goes wrong

Some of these error conditions involve an alert box. This is a dialog that emits the standard alert sound (if any) when it opens, and requests attention if it opens in the background. None of these error alerts have parents, so they should all have the title “Printing Problem”, and a minimize button and no other buttons in their title bar. They should also all use the printer’s icon (which should be overlaid by the error or warning emblem as appropriate).

error-alert.png

The secondary text for all of these alert boxes should be:

  • “You have {number of jobs} jobs queued to print on this printer.”, if the alert is appearing because you are printing to the printer.
  • “There are {total number of jobs} jobs queued to print on this printer.”, if the alert is appearing because you look after the printer.

Missing software

If Cups reports the cups-missing-filter event, an alert box should appear: ‘The printer “Name of printer” can’t be used, because required software is missing.’ unless this is job-specific

A cover or door is opened

If Cups reports the event cover-open or door-open, an error alert box should appear: ‘A cover is open on the printer “Name of printer”.’, or ‘A door is open on the printer “Name of printer”.’, respectively.

Printer gets low on toner

(Cups event: printer-state-changed "toner-low")

There should be no notification when a printer becomes low on toner, unless you have print jobs in progress or queued for that printer.

If you have print jobs in progress or queued for a printer when it becomes low on toner, then:

  • If System Settings was open displaying any panel other than “Printing”, an error alert box should open, with the icon of the printer, primary text ‘The printer “Name of Printer” is low on toner.’, and buttons “Pause Printer”, and “Continue Anyway”.
  • If you click the “Pause Printer” button, and System Settings is not currently open, then System Settings should open to the Printing panel, navigate to the printer in question (revealing the low-toner warning in the settings interface), and request attention.

Printer runs out of toner

(Cups event: printer-state-changed "toner-empty")

There should be no notification when a printer runs out of toner, unless you have print jobs in progress or queued for that printer.

If you have print jobs in progress or queued for a printer when it runs out of toner, then:

  • If System Settings was open displaying any panel other than “Printing”, an error alert box should open, with the icon of the printer, primary text ‘The printer “Name of Printer” is out of toner.’, and buttons “Settings…” and “OK”.
  • If you click the “Settings…” button, then System Settings should open to the “Printing” panel, navigate to the printer in question (revealing the low-toner warning in the settings interface), and request attention.

In addition, if a Print dialog is open with that printer selected, it should remain selected, but its icon should have an error emblem, and the “Print” button should be insensitive. The error message “ (X) This printer is out of toner.” should appear alongside the “Cancel” and “Print” buttons, to explain why the button is insensitive.

Printer becomes low on paper

(Cups event: media-low)

Printer runs out of paper

(Cups event: media-empty ("Out of paper" is shown)

Printer becomes low on other supplies

(Cups event: marker-supply-low)

Printer runs out of other supplies

(Cups event: marker-supply-empty)

Printer goes offline

(Cups event: offline)

Miscellaneous error

(Cups event: other "Printer error"`)

Multiple errors

For now, multiple errors with the same printer should be presented separately. They may be combined in future if this turns out to be useful.

Other events

(Cups event: job-created)

(Cups event: job-completed)

(Cups event: job-stopped)

Similar work

Ideas

  • On the first window drawing on this page, have you considered using Tabs instead of the Combo that says "Printer Status" ?, (it also eliminate the redundancy of Show Jobs Button). - juancarlospaco

  • On "toner-empty" status, making the "Print" button inactive is a very bad idea, in my opinion. The machine is trying to be smarter than the user this way. Consider two situations: 1. The toner isn't empty, only the system thinks it is (I'm encountering this right now - I bought a new original toner and Ubuntu says there's no toner left) 2. There's very little toner left, but the printer tells Ubuntu it's empty - the user won't be able to use that little left. -- Both situations are real-life situations and with the new functionality it wouldn't be possible to override this. I don't think a "toner-empty" message should be treated as high-profiled as a paper-jam for example. - Wojtek Krawczak

Printing (last edited 2017-01-20 13:19:36 by mpt)