Cloud Print

Introduction

Google Cloud Print (GCP) enables any app (web, mobile, desktop) on any device to print to any cloud-connected printer. This page provides an overview of all public developer documentation related to GCP. To learn more about Google Cloud Print, see our official Cloud Print Site.

If you are a physical or virtual printer maker and want to learn how to receive print jobs from Google Cloud Print or manage GCP printers, see the Receiving Print Jobs section. If you are an application developer looking to submit print jobs to Google Cloud Print, see the Submitting Print Jobs section.

What is Google Cloud Print?

We observe two significant trends in computing today, the shift towards web/cloud-based applications and the proliferation of web-connected mobile devices. As these web apps and mobile devices have become more capable, users are expecting the same capabilities from them that they have on their PCs, and printing is near the top of that list.

Replicating the complex printing architectures of traditional PC operating systems on these new class of devices is not desirable and often not feasible. Nobody in the printing ecosystem - users, developers, print manufacturers - wants to extend the “driver mess.” GCP eliminates the need for drivers and brings full-featured printing to a new generation of mobile and web-based applications.

This is accomplished through the use of a cloud print service. Apps no longer rely on the local operating system (and drivers) to print. Instead, as shown in the diagram below, apps (whether they be a native desktop/mobile app or a web app) use GCP to submit and manage print jobs. GCP is then responsible for sending the print job to the appropriate printer, with the particular options the user selected, and providing job status to the app.

simple_diagram_see_text

Google Cloud Print Components

Here's a brief summary of each component in the diagram above.

Applications

Any type of application can use Google Cloud Print, including web apps (such as Gmail and certain third-party apps) and native apps (such as a desktop word processor or an Android/iOS device). These apps call Google Cloud Print APIs. They can use these APIs to collect the necessary data to show their own user interface for custom print options or simply use the common print dialog that Google Cloud Print provides (see the section on "User Interface," later in this page). There are also APIs for querying print job status. Google Cloud Print is now integrated with mobile GMail and mobile Google Docs and will integrate with more apps in the coming months. Third-party app developers can use Google Cloud Print in their web, desktop, and mobile apps as well.

Google Cloud Print Service

Google Cloud Print is a web service offered by Google. Users associate printers with their Google Account. Printers are treated in much the same way as documents are in Google Docs: it is very easy to share printers with your coworkers, friends, and family anywhere in the world. No need for complex network setups to make print sharing work! In addition to associating printers with a user's Google Account, GCP also stores the capabilities of each particular printer model so that the appropriate printer options can be shown to the user when submitting a print job. Once the service receives a print job, it sends it to the printer. The service also receives regular updates on the status of the print job from the printer and makes this status available to the app.

User Interface

Google has developed a common print dialog (web UI) that applications can use to offer GCP-based printing to their users. Similarly, the printer/job status and management UI enables users to view which printers they have registered (or have had shared with them), print job status, etc.

Printers

Google Cloud Print disambiguates between two types of printers: Cloud Ready and non-cloud printers.

Cloud Ready Printers

Cloud Ready printers are a new generation of printers with native support for connecting to cloud print services. A Cloud Ready printer has no need for a PC connection of any kind or for a print driver. The printer is simply registered with one or more cloud print services and awaits print jobs. We believe cloud printing has tremendous benefits for end users and for the industry, and will increasingly come to be expected from users given the rapid shift to cloud-based apps and data storage, and to mobile computing. We also believe that the only way that the benefits of cloud printing can be realized is if the protocols are open, freely implementable, and, when possible, based on existing industry standards. We expect there to be multiple cloud print services, and users should have a choice in which services they use and which printers they connect to each. HP has released its Cloud Ready ePrint line that can be connected with Google Cloud Print, and more Cloud Ready models will be released in the coming months.

Non-cloud Printers

Most printers in existence today fall into this category. This category includes printers connected directly to PCs (for example, via USB cable) as well as networked printers (Ethernet or WiFi). This category also includes the recent crop of "web-connected" printers that provide users with access to certain web services (such as maps and movie tickets) directly from the on-printer LCD. While these are "web connected," they are not Cloud Ready printers as described above, because they do not have the ability to directly communicate with a cloud print service to fetch print jobs.

We want users to be able to print to non-cloud printers via Google Cloud Print. This is accomplished through the use of a connector, a small piece of software that runs on a PC where the printer is installed. The connector takes care of registering the printer with Google Cloud Print and waiting for print jobs from the service. When a job arrives, the connector submits it to the printer using the PC operating system's native printer software, and sends job statuses back to the service.

Thus far, we have developed a connector for Mac and Windows and are currently developing one for Linux. To help users avoid the trouble of having to install yet another piece of software on their PCs, these connectors are distributed with Google Chrome. By simply installing Google Chrome on their PC and enabling the feature (it is off by default), users will be able to print via Google Cloud Print to their non-cloud printers. An obvious downside to this approach is that the PC must be powered on and connected to the Internet in order for print jobs to get to the connector (and hence the printer). This current requirement motivates our excitement about working with the industry to build native support for cloud print services into next-generation printers. We are also hoping to see clever folks in the community build small factor hardware connectors (like routers with print server abilities) to allow users get all the benefits of the connector without needing to leave their PC powered on.

Google Chrome OS printing

Google Chrome OS uses Google Cloud Print for all printing. There is no native printer software nor printer drivers on Google Chrome OS!

When users print from a web app that directly integrates with Google Cloud Print, then the print operation is standalone (as described above) and does not involve Chrome OS. When users print a web page which is not directly integrated with Google Cloud Print (such as a boarding pass, movie tickets, a magazine article, etc.), the app responsible for printing is the Google Chrome browser on Chrome OS. Here, Google Chrome on Chrome OS is a native app that uses Google Cloud Print and the common print dialog. The content to be printed is uploaded to the Google Cloud Print service along with the job ticket information and then sent to the selected printer. More details are available in the design documents linked below.

Design Documents

The following design documents describe key system components of Google Cloud Print:

Authentication required

You need to be signed in with Google+ to do that.

Signing you in...

Google Developers needs your permission to do that.