It’s nearly two years since I wrote about session printing, in which the user doesn’t need to modify a locally running CUPS instance in order to print to a network printer. The main advantage of having printing running entirely in the user session is that no special privileges are needed. After all, all you need to do is send the document over the network.

Google Cloud Print is a web service provided by Google that allows people to share their printers. In addition to being able to print to printers shared that way, there is a cloud equivalent of “Print to file” in the form of “Save to Google Drive”.

Here is a screenshot of the print dialog (from gedit) with this module included:

The cloudprint module uses gnome-online-accounts to obtain the OAuth 2.0 access token for the Google account, which is why the Google goa backend needs an additional scope.

Currently it can discover available printers, get simple details about them such as display name and status, and submit jobs without any special options. I plan to add options-setting based on the capabilities advertised by the printer.

Where I can see it can make some sense to have printing entirely in the user session is for PDF printing to smart services hosted elsewhere: e.g. the office CUPS server, or Google Cloud Print. Applications produce PDF, so for printing to these types of service there is nothing to do but send the PDF (along with any print options).