CUPS Cloud Print (archived)


CUPS Cloud Print is unsupported and has been for some time. Google Cloud Print itself will also be deprecated in December 2020 and you should migrate to an alternative. See Google for more information.


CUPS Cloud Print is a Google Cloud Print driver for UNIX-like operating systems ( Linux, Mac OS X , BSDs etc ). It allows any application which prints via CUPS to print to Google Cloud Print directly.


Assuming you have Print-Cloud-Ready printer, Google Cloud Print allows you to print to your printer without installing any printer specific drivers – aside from the obvious advantages of not having to install drivers for every printer you come into contact with, it allows you to use a proprietary printer on platforms you would not normally easily be able to use ( for example, printing from an ARM-based Raspberry Pi to a printer where the manufacturer only provides x86 proprietary drivers ).

Also, because Google Docs ( Google Drive ) presents itself as a printer to Cloud Print, it also means you can ‘print’ directly to Google Docs using CUPS Cloud Print ( some users have leveraged this functionality to scan to Google Docs ).

License and Downloading

CUPS Cloud Print is licensed under the GNU Public License version 3 or above, the source code is freely available as a Github repository.

20160521 Release – 21st May 2016

  • Fix: Now works on Mac OS X 10.11 ( El Capitan )
  • Change: Moved Mac OS X Install dir from /usr/local/share/cloudprint-cups to /Library/cloudprint-cups

20160502 Release – 2nd May 2016

  • New: Use CCD instead of ( now broken ) old legacy format
  • Fix: Add refresh tokens to launchd on Darwin package
  • Fix: Suggest installing texlive-lang-cjk in debian package
  • Fix: Delete /usr/share/cloudprint-cups/.cache on Gentoo ebuild uninstall
  • Change: Upgrade oauth2client to 1.5.2
  • Change: Write temp files to disk on Darwin if ps2pdf not present

20140814.3 Release – 31st May 2015

  • Fix: Now works on Mac OS X 10.10 ( Yosemite )
  • Change: Moved Mac OS X Install dir from /usr/local/share/cloudprint-cups to /usr/share/cloudprint-cups

20140814.2 Release – 13th December 2014

  • Fix: Upgrade script error no longer prevents Mac OS X installation
  • Fix: Strip control chars when sanitising text
  • Fix: Fixed printing from stdin, detect mimetypes from job types
  • Change: Upgraded oauth2client to v1.4.2
  • Change: Stop writing temp files to disk
  • Change: Stop writing base64 encoded files to disk
  • Change: Require 'which' and 'file' packages in rpm ( dummy 'which' package added for OpenSUSE )
  • Change: Require python-six for latest oauth2client version
  • Change: Prevent capabilities prefixed with 'cups', or other ones that could point to binaries being used to populate ppd with potentially arbitrary commands from GCP
  • Change: Dont write temp ppd files in script
  • Change: Backend now only accepts data from stdin, and refuses to read files passed in

20140814 Release – 14th August 2014

  • Fix: Issue #71 on Github, always send use_cdd=false param with every request Git logo

20140702 Release – 2nd July 2014

  • New: Split printer class into seperate Printer and PrinterManager classes Git logo
  • New: OS X package support Git logo
  • New: Added SELinux support to RPM packages Git logo
  • New: Added refresh token cron script Git logo
  • Fix: Use python interpreter when python2 interpreter not available. Git logo
  • Fix: Setup script shows printer names in multiple columns, instead of one column. Git logo
  • Fix: Now PEP8 compliant Git logo
  • Fix: Detect _lp as valid cups group in configure script Git logo
  • Change: Moved testing data and scripts into 'testing' subdirectory Git logo
  • Change: Changed protocol to gcp:// instead of cloudprint:// Git logo

20140308 Release – 8th March 2014

  • Fix: Use shorter URI format to workaround issue on older distros having a short max length on printer URIs Git logo

20140307 Release – 7th March 2014

  • Security: Only log access token to log file in debug mode Git logo
  • New: Support printers with same name in same account Git logo
  • New: Log now pipe delimited and contains timestamp Git logo
  • Fix: Set UseCIEColor when converting postscript file to pdf, fixes printing files generated by Adobe Reader Git logo
  • Fix: Set page name to Untitled when page printed with no name Git logo
  • Fix: Open oauth2 config file in read only mode if access denied to write, fixes running under Mac OS X Git logo
  • Fix: No longer run upgrade script on fresh install Git logo
  • Fix: Fix the log file permissions on creation or upgrade, only adjust owners and permissions if needed to change Git logo
  • Fix: Exclude groups that cant be correct for cups group when discovering CUPS group Git logo
  • Fix: Discover CUPS group by examining CUPS log file ownerships, then PPD directory if logs missing Git logo
  • Change: Sanitised the indentation of python files Git logo
  • Change: Removed upgrade message about location of files changing Git logo
  • Change: Moved common functions into utils class, allows better unit testing Git logo
  • Change: Centralised logging setup into utils script Git logo

20140210 Release – 10th February 2014

  • New: Show better error message if printer ppd not found Git logo
  • Fix: Use python logging facility instead of writing to log files directly, fixes No handlers could be found for logger error Git logo
  • Fix: Upgrade script now faster with multiple printers, now only gets list of PPDs once and filters for each printer Git logo
  • Fix: Show better error if renewing OAUTH2 token fails Git logo
  • Fix: Explicitely define dirs in rpm files list, ensures will be removed correctly on uninstall Git logo
  • Fix: Deb package now deletes old pyc files on uninstall/upgrade Git logo
  • Fix: Config file permissions now fixed to allow updating of access token when printing Git logo
  • Fix: Compile python code on rpm install to ensure old files are removed on uninstall Git logo
  • Fix: Compile python code on Gentoo install to ensure old files are removed on uninstall Git logo
  • Fix: Compile python code on arch install to ensure old files are removed on uninstall Git logo
  • Change: Merged script into backend script Git logo
  • Change: Error out immediately if lpadmin command not in path on upgrade Git logo

20140112 Release – 12th January 2014

  • NEW: When invalid OAuth2 code used, show the error message Git logo
  • NEW: Can now delete associated printers when deleting an account Git logo
  • NEW: Added test script for post-packaging testing Git logo
  • CHANGE: Moved files from /usr/lib/ to /usr/share Git logo

20131013 Release – 13th October 2013

  • CHANGE: Use imagemagick for rotating PDFs instead of pdfjam due to issues with CentOS and Fedora Git logo

20131009 Release – 8th October 2013

  • FIX: Override default for when applications assume wrong default values ( eg duplex ) Git logo
  • FIX: No longer error on adding printers with duplicate capability names, Git logo
  • FIX: Landscape printing should now work correctly on all printers Git logo
  • FIX: Ignore duplicate parameters Git logo
  • FIX: Detect duplex option Git logo
  • FIX: Adding printers with prefix no longer errors Git logo
  • CHANGE: pdfjam dependency now required Git logo
  • CHANGE: List cloud printers script now shows display name instead of printer name Git logo

20130914 Release – 14th September 2013

  • NEW: Use display name if available for generating values for ppd Git logo
  • NEW: Added version param to scripts Git logo
  • NEW: Added test cases and list of capabilities for testing internal name function Git logo
  • FIX: Prevent duplicate options and capabilities being generated Git logo
  • FIX: Post name of capability instead of internal hash, should fix issues with capabilities failing to work correctly Git logo
  • FIX: Fixed displaying of errors from Google side ( eg when print proxy is down ) Git logo
  • FIX: Allow overriding print params per print job Git logo
  • CHANGE: Removed gcp_ prefix for capabilities ( unless conflicts with reserved words ) Git logo

20130718 Release – 18th July 2013

  • NEW: PDF now supplied to CCP via CUPS, increases printing speed. Git logo
  • NEW: Default to A4 paper size in countries that use A4 paper. Git logo
  • FIX: Use utf8 output for ppd, use internal option and capability hashes for names to prevent errors - should fix a lot of errors related to non-ASCII chars in capabilities. Git logo
  • FIX: Removed redundant ppdc dependencies. Git logo
  • FIX: Removed old PPD files, as no longer used. Git logo
  • FIX: Optimise PDF generated for printing. Git logo
  • FIX: Only ask once per account for prefix. Git logo
  • FIX: Fixed final warnings in PPD. Git logo
  • FIX: Custom printer name should now work. Git logo
  • FIX: CUPS Backend etc now use source install by default. Git logo
  • FIX: Add translations into cups ppd. Git logo

20130608 Release – 8th June 2013

  • FIX: Parameters with long names should no longer error Git logo

20130604 Release – 3rd June 2013

  • FIX: Fixed syntax error on adding individual printers. Git logo

20130603 Release – 3rd June 2013

  • NEW: Added script to assist in debugging issues Git logo
  • FIX: Use option name instead of displayname if displayname is missing Git logo
  • CHANGE: On answering no for adding all printers, ask to add individual printers Git logo
  • CHANGE: Ask whether or not to use prefix rather than assuming user knows to enter prefix directly Git logo

20130526 Release – 26th May 2013

  • FIX: Strip out colon chars from capability and options in ppd. Git logo

20130519 Release – 19th May 2013

  • FIX: No longer error on capabilities with missing display name. Git logo

20130510 Release – 10th May 2013

  • Fix: Use lp group instead of trying to discover group name dynamically Git logo
  • Fix: Only update config file permissions when config options changed, not when tokens refreshed. Git logo
  • Fix: Deb package installs cloudprint files with correct permissions. Git logo

20130504 Release – 4th May 2013

  • New: Script to delete user accounts ( ) Git logo
  • New: Capabilities for printer supplied by Google Cloud Print ( eg Colour, Print tray, etc ) now appear as options in dialogs. Git logo
  • Fix: RPM package can now be built as a non-root user. Git logo
  • Change: PPD file now generated dynamically Git logo

20130203 Release – 3rd February 2013

  • Priority Fix: Ensure printing is always sent over HTTPS, fixes an issue where Google has began returning errors on HTTP API requests Git logo
  • New: Extra debug data now logged if JSON decoding fails Git logo
  • New: Added gentoo/freebsd support Git logo
  • Change: Detect CUPS user group automatically rather than assume group name is always lp Git logo

20130101 Release – 1st January 2013

  • New: Python 2.6 now properly supported Git logo
  • New: Began adding py.test unit tests Git logo

20121208 Release – 8th December 2012

  • New: Added FedEx office support Git logo

20121202 Release – 2nd December 2012

  • Fix: Show all printers, including ones marked as dormant Git logo
  • Fix: Issue #16 – Arch package, cupsddk dependency is discontinued. Git logo
  • Fix: Depend on system-config-printer-libs instead of python-cups in RPM Git logo
  • Change: Backwards compatiblity changes for older versions of python Git logo

20120908 Release – 8th September 2012

  • Fix: Issue #13 – Invalid CUPS printer name generated Git logo

20120823 Release – 23rd August 2012

  • Fix: Fixed error when trying to print to printers with an account name containing an ‘@’ Git logo

20120818 Release – 18th August 2012

  • New: Multiple Google user account support, you can now add printers from multiple Google Cloud Print accounts Git logo
  • New: Depreciated Google ClientLogin replaced with OAuth2 implementation – Google Account password no longer stored locally – when upgrading you will need to remove and re-add your Google Account and printers Git logo
  • Fix: No longer blindly overwrite printers when adding a new printer with same name as an existing printer Git logo

20120812 Release – 12th August 2012

  • New: PPD of cloud printers now replaced when upgrading CUPS Cloud Print Git logo
  • New: PPD now has an IEEE 1284 device id Git logo
  • New: Device and options now logged when printing Git logo
  • New: Cloud Print printers now listed as ‘Discovered Network Printers’ when adding printers Git logo
  • New: Added Colour Model option to CUPS PPD, send Colour option to Google when printing to colour printers Git logo
  • Fix: Querying available options no longer hangs Git logo
  • Fix: PDF files should now print correctly Git logo
  • Fix: More Python3 fixes Git logo
  • Fix: Fixed error when installing printer with non ASCII characters Git logo
  • Fix: Check that files exist before attempting to delete them Git logo

20120513 Release – 13th May 2012

  • Security: cloudprint.conf now only accessible by root and cups Git logo
  • New: Added Arch Linux support Git logo
  • Fix: Require python 2.7 Git logo
  • Fix: Log permissions now fixed when recreated by logrotate Git logo
  • Fix: Fixes to dependencies to require ghostscript Git logo
  • Fix: Backend script no longer fails if cannot write to log file Git logo

20120422 Release – 22nd April 2012

  • New: When setting up printers, prompt for an optional prefix for printer names Git logo
  • New: Added debian and redhat support, package build stubs now in repository Git logo
  • Change: Renamed Gentoo ebuild to be consistent with new RPM and Deb packages Git logo

20120123 Release – 23rd January 2012

  • Fix: Require python2 instead of any version of Python Git logo
  • Fix: Only try to convert to PDF if file isnt already a PDF Git logo
  • Fix: Cast to string on joining string as part of request, fixes an issue with some files printing Git logo

20111110 Release – 11th November 2011

  • New: Added utility to list printers Git logo
  • New: Added setup script Git logo
  • New: Added application specific password support Git logo
  • Fix: Print jobs now titled with job name from CUPS instead of hardcoded Git logo
  • Fix: PPD now presents as a colour printer Git logo
  • Fix: Now compatible with BSD install Git logo
  • Fix: No longer send PDF data twice, should half printing time Git logo
  • Fix: Make install should now install all *.py files Git logo
  • Fix: Errors now reporting properly to CUPS Git logo
  • Fix: Check for pstopdf if ps2pdf doesnt exist Git logo

20111011 Release – 11th October 2011

  • Initial Release Git logo

I generally use Gentoo , CentOS and Ubuntu, but I’ve tried to create packages to suite 99% of Linux distributions. All packages are set as noarch ( or the distro’s equivalent ), so should work on any CPU architecture ( x86, x86_64, ARM, MIPS etc ).

If there is a (Free) OS which you require packages for, please comment below and I’ll investigate creating packages for it.

Please select your Operating System for installation instructions:

Ubuntu 12.04+ , Kubuntu 12.04+ , Xubuntu 12.04+ , Mint 13+ etc - PPA Based Installation

Run in a terminal:

sudo add-apt-repository ppa:simon-cadman/niftyrepo
sudo apt-get update
sudo apt-get install cupscloudprint
sudo /usr/share/cloudprint-cups/

Follow the instructions about authorising CUPS Cloud Print to use your Google Account for printing, and you're done.

Debian Squeeze+ , MEPIS 11+ etc - .deb file based installation

If your OS supports PPA repositories, it is preferable to install using PPAs, you will then automatically receive updates when new versions are released.

If you need to install using a deb file, run in a terminal ( as root, or using sudo ):

dpkg -i cupscloudprint_20160502-1_all.deb
apt-get -f install

Follow the instructions about authorising CUPS Cloud Print to use your Google Account for printing, and you're done.

CentOS 6+ , Fedora 19+ , Oracle 6+ , RHEL 6+ , Scientific Linux 6+ etc - Yum Based

Note: RHEL based distributions require the EPEL repository installed ( see here or here for examples of how to install the repository ).

Create a file in /etc/yum.repos.d/niftyrepo.repo with this text inside ( as root, or using sudo ):


Then run in a terminal ( as root, or using sudo ):

yum update
yum install cupscloudprint
Note: Users wit recent versions of Fedora should use 'dnf' instead of yum, and may also need to install the python-cups package manually.

Follow the instructions about authorising CUPS Cloud Print to use your Google Account for printing, and you're done.

OpenSUSE 11.1+ , SUSE EL 11+ etc - Zypper Based

Create a file in /etc/zypp/repos.d/niftyrepo.repo with this text inside ( as root, or using sudo ):


Then run in a terminal ( as root, or using sudo ):

rpm --import
zypper update
zypper install cupscloudprint

Follow the instructions about authorising CUPS Cloud Print to use your Google Account for printing, and you're done.

.rpm file based installation

If your OS supports Yum repositories, it is preferable to install using a Yum repo, you will then automatically receive updates when new versions are released.

Run in a terminal ( as root, or using sudo ):

rpm --import
rpm -i 

Follow the instructions about authorising CUPS Cloud Print to use your Google Account for printing, and you're done.

Gentoo, Sabayon, Funtoo etc - Portage Ebuild

The preferred way to install CUPS Cloud Print on Gentoo is using my layman repository - simply run in a terminal (as root with layman installed):

layman -o -f -a niftyrepo
emerge -va cupscloudprint

Then follow the instructions about authorising CUPS Cloud Print to use your Google Account for printing.

You can alternatively download the latest ebuild manually to a local overlay and emerge as normal.

Arch, Chakra etc - Arch Pacman

Add to /etc/pacman.conf:

Server =
SigLevel = Required TrustAll

Then run in a terminal ( as root, or using sudo ), answering 'Y' when asked to the import PGP key ( 2048R/C5541D9D ):

pacman -Syu cupscloudprint

Follow the instructions about authorising CUPS Cloud Print to use your Google Account for printing, and you’re done.

You can alternatively download the latest arch PKG file and install as normal.

Other (Source install) - Source Install

Run in a terminal ( as root, or using sudo ):

git clone git://
cd CUPS-Cloud-Print/
git checkout tags/20160502
make install

Follow the instructions about authorising CUPS Cloud Print to use your Google Account for printing, and you're done.

When upgrading, you should always run:


Mac OS X 10.7+ - Darwin Based

Download and run the latest package from here, then run in a terminal:

sudo /Library/cloudprint-cups/

Follow the instructions about authorizing CUPS Cloud Print to use your Google Account for printing, and you're done.

FreeBSD, PC-BSD etc - FreeBSD based

CUPS Cloud Print is now in FreeBSD ports! See here for installation instructions.
Instructions for running source install
Run in a terminal ( as root, or using sudo ):
git clone git://
cd CUPS-Cloud-Print/
git checkout tags/20160502
gmake install
Follow the instructions about authorising CUPS Cloud Print to use your Google Account for printing, and you're done. When upgrading, you should always run:

After installing CUPS Cloud Print ( see Installation ), you should first run the setup script, as root ( if you install from source the path will be /usr/local/share/cloudprint-cups ):


This will create a CUPS printer for each Google Cloud Print printer on your account, and ( if it is the first time you have installed CUPS Cloud Print ) prompt you to allow CUPS Cloud Print to print using your account.

If you notice any bugs or would like to request a feature, please create an issue on the project’s Github issues page .

Which platforms can CUPS Cloud Print run on?

The supported operating systems are listed on the nstallation instructions section. It should work on any platform which those operating systems run on ( Raspberry Pi, embedded hardware such as routers, etc ).

I also generally prefer to only support Free operating systems for my software.

How do I remove google accounts from CUPS Cloud Print?

The script will remove accounts from CUPS Cloud Print:

sudo /usr/share/cloudprint-cups/

I've shared a CUPS Cloud Print printer over Samba for a Windows client, which printer driver should I use?

The "Samsung CLP-660 Series PS" printer driver works under Windows 7, but it may not work 100%, as it is unsupported. I believe basic printing does work though.

Google has added new options for my printer, but CUPS is not showing them as options, how to I force CUPS Cloud Print to refresh the printer capabilities?

Running the upgrade script refreshes the available printer options:

sudo /usr/share/cloudprint-cups/

339 thoughts on “CUPS Cloud Print (archived)”

  1. Fantastic! Been scratching my head and googling this all afternoon, then I find your solution and everything is right with the world again 🙂

  2. Hi Simon
    try to find a solution to use your software through a proxy server…
    Do you have any idea?

  3. Hi Simon
    Is it possible to send to Google Cloud Print a PCL file without conversion?


  4. Hi Pierre-Yves,

    I have an open Github issue to investigate proxy issues ( here ), but I haven’t looked at it in a while – the last time I checked using a transparent proxy worked fine ( eg where all HTTPS traffic is transparently sent via the proxy ), but there was no simple way to configure CUPS backends with a proxy.


  5. Hi Pierre-Yves,

    According to the Google Cloud Print API documentation only a few filetypes are supported directly across all printers ( pdf, jpeg and png ), however it does mention that filetypes that an individual printer supports directly can be accepted by Google Cloud Print. I’ll look at making changes to CUPS Cloud Print to allow printing of extra filetypes without conversion that the printer claims to support.



  6. I really needed this….. I am setting up some mint machines to use in charity run support program for expelled k12 students. This program hopes to minimize the academic impact of missing school for these challenged students. Since the school system has decreed Google Docs as the basic IT for all student and facility, these old XP machines have been given new life with the newly installed Mint with remote printing capability.
    thanks again…….

  7. Hi,

    I posted this on the bugs/request page, but in looking around the site it looks like I should have posted it here.

    I installed Cups Cloud Print on 1 computer at the office last night. It found and installed all of the cloud printers I have. I had it set to find all printers automatically. I have Epson WP-4530 printers at home, at the office, and at our church. It found all of those plus others. Each is individually named in Google Cloud Print. I tried installing this on a second computer at the office today. Since in the first install I had many printers in I didn’t want I selected to do the manual install. It did install the Epson WP-4530, but didn’t specify which of the three it installed. When trying to print, it says it printed successfully, but It isn’t coming to the printer here in the office. I don’t know where it is going. I tried uninstalling and purging cupscloudprint, then reinstalling. Even with automatic install selected, it is still not finding the individual printers, but just gives me the one Epson selection which seems to not be related any of the three in Google cloud Print. I ran the script to delete the account and associated printers, and then did a new install of that account. It still doesn’t give me the individual list of the three Epson printers as they are in my Google account. I’m beginning to think that it isn’t seeing all of them. Maybe the cupscloudprint will only work on one computer. Any help would be appreciated. Thank you.

  8. Hello,

    Using Brother printer MFC-J870DW cloud ready printer. Printer works fine using Acer 720 chromebook and when printing google docs etc. Also have Ubuntu 12.04 on Acer and operates on internet perfectly.

    However cannot print using Ubuntu at this time. Message in Ubuntu is: “failed to connect to server” “printing service not available – start the service or connect to another server”

    In the terminal, using: sudo system-config-printer, I get the message “Failed to load module unity-gtk-module”


    Although I think the problem is between Unity and Google cloud, in Ubuntu, where should the print driver for this Brother printer be located in the terminal?

    Secondly, from the comments, Ubuntu 10.04 package will work with Ubuntu 12.04. Is this a valid assumption?


  9. Hi Simon

    I get the following when trying to install to a Linux Mint 16

    W: Failed to fetch 404 Not Found

    W: Failed to fetch 404 Not Found

    W: Failed to fetch 404 Not Found

    E: Some index files failed to download. They have been ignored, or old ones used instead.

    These repositories are not found despite a few attempts at trying to reinstall

    Advice welcome


    Joe Rice

  10. Hi Joe,

    It looks like Mint 16 is based on Ubuntu Saucy ( 13.10 ), which is no longer supported, and so I can’t add PPA repositories for that version of Ubuntu or Mint.

    You should probably upgrade to a later OS version at some point to make sure you get security patches etc, but for now you can fix that error by replacing ‘saucy’ with ‘trusty’ in /etc/apt/sources.list.d/simon-cadman-niftyrepo-saucy.list , and then running ‘sudo apt-get update’.

    Hope this helps


  11. Hi Bill,

    That error sounds like CUPS isn’t running, can you try running ‘sudo service cups restart’ in a terminal? It should restart the CUPS service, or at least hopefully give an error to explain why CUPS isn’t running ( the logs in /var/log/cups/ may also help ).

    The “Failed to load module unity-gtk-module” message may be because you are missing some packages ( this thread looks to be a similar issue ).

    Answers to your questions:

    1. CUPS Cloud Print is installed in /usr/share/cloudprint-cups/ , and it drops some driver programs in /usr/lib/cups/, you shouldn’t need to install any other printer drivers for CUPS Cloud Print to work with a cloud-ready printer.
    2. Yes, the Ubuntu packages should work on any version of Ubuntu after 10.04 ( it may even work on older versions, but I haven’t tested it recently ).

    Hope this helps


  12. Hi Zombielinux,

    I’ve just released a new package ( cupscloudprint-20140814.1 ) which depends on python2-pycups instead of pycups, this seems to fix the problem. You should automatically pull in the new package from the niftyrepo repository next time you update.



  13. Hi Simon,

    First of all, thank you for the great piece of software.

    Since upgrading to Yosemite on two machines, I’ve got this error popping up on both:

    Error adding: __Google_ (1280, u’server-error-internal-error’)
    Error adding: Generic_16BW-4 (1280, u’server-error-internal-error’)
    Error adding: Generic_16BW-4 (1280, u’server-error-internal-error’)
    Error adding: Samsung_SCX-4100_Series (1280, u’server-error-internal-error’)

    It is still some progress, because on the developer previews I couldn’t even install the package. I just thought I could bring this issue up, so hopefully it gets fixed in a next release.

  14. Simon,
    Great package, it seems to work really well with A4 printers like the Brother HL-2150N I have installed on a windows XP machine. However, I am struggling with label printers. I have a Star TSP 700 II. It is installed on a windows XP machine and prints well directly from that machine to a custom label size (52x30cm). However, when this printer is added to CUPS via cloudprint, CUPS never picks the “media size” up correctly (defined under “default options”, even though it picks up the “page_size” as the custom label size defined in windows XP.

    How do I tell cups what the “media size” is? It keeps printing out 4 labels at a time. I presume that cups-cloudprint is using the drivers installed on the XP host machine? It seems strange that it can print fine locally, but not from cups….

    Any thoughts appreciated.

  15. Hi Plamen,

    Thanks, I haven’t tried CUPS Cloud Print on Yosemite yet, I’ll have to investigate.


  16. Hi Cahir,

    Thanks, I haven’t personally tried CUPS Cloud Print with label printers – I guess the label printer is connected to the XP host machine, and somehow setup with Google Cloud Print on there ( I assume using Google Chrome or Chromium to share toe printer ), so it could be CUPS Cloud Print, Google Chrome or Chromium, or the drivers, or even Google Cloud Print itself not passing along the correct media size.

    Have you tried printing directly from Google Cloud Print and seeing if that works ( – ‘Print’ button on left, upload a test file manually and select the media size in the options )? That may help narrow down where the problem is.



  17. Simon, Thanks for your reply and suggestions. You are correct – the label printer is an ethernet printer which is installed on Windows XP, where the default label size is specified. CUPS seems to pick up this label size from XP via cloudprint. This printer will print PDF labels just fine when sent locally from the XP machine.

    I printed directly from Google Cloudprint. The label came out fine, but there were an additional 2 blank labels. I suspect that this is because CUPs has the “media size” setting to A4 or letter. I can’t get anything smaller. If I installed this printer to cups directly, I would select the star drivers for cups, which would allow me to specify the media size. But I can’t seem to use these drivers when using cups-cloudprint, I can only use the cloudprint connection. Is there any way to specify that cups uses the star drivers?

    I also printed from the command line use lpr. The label printed, but again had an additional one blank label. So who knows?

  18. Hi Cahir,

    CUPS Cloud Print essentially is the ‘driver’ that CUPS uses the print with Google Cloudprint – it populates the parameters ( including media size ) from what Google Cloud Print provides, if you can send me the output ( via email to would be good ) of this command I can see if its something I can fix or work around in CUPS Cloud Print:

    sudo /usr/share/cloudprint-cups/



  19. What’s going on here? CUPS trys to print, encounters an error and then disables the Queue.


    {u’status’: u”, u’isTosAccepted’: False, u’updateTime’: u’1370287324050′, u’gcpVersion’: u’1.0′, u’description’: u’Save your document as a PDF in Google Drive’, u’name’: u’Save to Google Docs’, u’tags’: [u’^recent’, u’__google__drive_enabled’, u’save’, u’docs’, u’pdf’, u’google’], u’defaultDisplayName’: u’Save to Google Drive’, u’accessTime’: u’1316132041869′, u’connectionStatus’: u’ONLINE’, u’id’: u’__google__docs’, u’ownerName’: u’Cloud Print’, u’capsHash’: u”, u’displayName’: u’Save to Google Drive’, u’ownerId’: u’’, u’type’: u’DRIVE’, u’createTime’: u’1311368403894′, u’proxy’: u’google-wide’}
    [{u’type’: u’ParameterDef’, u’psf:DataType’: u’xsd:string’, u’psk:DisplayName’: u’Google Drive File Name’, u’name’: u’__goog__drive_file_name’}]

    Traceback (most recent call last):
    File “/usr/share/cloudprint-cups/”, line 62, in
    File “/usr/lib64/python2.6/”, line 642, in __init__
    errread, errwrite)
    File “/usr/lib64/python2.6/”, line 1234, in _execute_child
    raise child_exception
    OSError: [Errno 13] Permission denied

  20. Hi Matthew,

    That sounds like the permissions/ownerships for the script are wrong ( in /usr/share/cloudprint-cups ), the script should be owned by the ‘root’ user and be executable by the owner. I’d also advise checking the permissions of /usr/share/cloudprint-cups/ if the permissions of have somehow been changed.

    Hope this helps


    EDIT: Sorry, should be owned by root, not lp user

  21. This looks very useful. I have one remaining dependency when I try to install from the rpm on openSUSE 13.1 (Bottle) (i586)

    I’m missing


    I would like to know the best source for this for openSUSE 13.1

    many thanks,


  22. Hi,

    I’ve installed on Ubuntu 14 and have had some success printing. However, when I add a second gmail account hoping to add the associated printers to my CUPS printer list, I only see the list of printers from the first email account. Any idea why that would be happening?


  23. Hi David G,

    Do you get any error message? Can you also try the latest installer ( currently here ), as there were some changes in the last release that fixes some possible installation failures.



  24. Hi ‘ö-Dzin,

    I’d recommend using the Zypper repository from the “OpenSUSE 11.1+ , SUSE EL 11+ etc – Zypper Based”, otherwise you can install the dependencies for openSUSE manually from here:


    Hope this helps


  25. Hi Paul,

    It should work fine using the ‘’ script ( just run the script and answer ‘Y’ when it asks if you would like to add more accounts, and then answer ‘Y’ to adding all printers to the account ).

    Does the ‘’ script report the same printers for both accounts? If so, I’d suggest removing the second account and adding it again, making sure you are logged in with the correct account when completing the verification code step.

    Hope this helps


  26. Hi Simon,

    Have you considered making the application bidirectional. What I mean is that currently it will forward print printed at to a Google Cloud Printer to a Cups printer . But it would be neat if if could work the other way as well having a Cups printer receive print sent to a Google Cloud Printer. This would allow any Cups printer to act as a Google Cloud Printer.

    Having that work as a real server without the complicated Chrome workaround that many people use would be fantastic.

    I hope you will consider it.



  27. i used cloudprint & cupscloudprint on an Ubuntu 12.04 LTS server, no gui and no Chromium browser. running cloudprint -d on server & all clients are also same ubuntu.

    uploaded all my cups printers to GCP just fine (via cloudprint). all the GCP ready printers came to my print server fine too (via cupscloudprint).

    i can print fine to GCP ready printers (using the above GCP/CUPS combo) & directly to the non-GCP printers (aka using CUPS only, no GCP).

    but when i print to a non-GCP ready printer via GCP, the job gets to GCP & is shown as being queued, but remains so & never prints.

    other symptoms:
    sometimes (not always) the server now shows error message “ERROR: Couldn’t connect to Cloud Service: will try again in 60 secs.”
    something dumps a file into the /tmp directory on the server and this happens every minute until the print job is cancelled in GCP.

    i’ve searched extensively & cant find the cause or solution. I do not want to load a gui and chromium onto a minimal server. cloudprint+cupscloudprint should = printing to non-GCP printers from my clients.

    pls help!

  28. Hi mowglie,

    This sounds like an issue on the Cloudprint daemon’s side, as it sounds like CUPS Cloud Print itself is working fine – I don’t know if it helps but I’ve found this issue on Github, which has the same error message. It may be that something has changed on Google’s side recently, so it may be worth checking you have the very latest version of the Cloudprint daemon installed. I’d also try printing directly from within Chromium or Google Docs directly to completely rule out any potential issues caused by CUPS Cloud Print.

    Hope this helps


  29. Tried installing on Yosemite MacBookPro.

    Installation brought following error:$ sudo /usr/local/share/cloudprint-cups/
    Traceback (most recent call last):
    File “/usr/local/share/cloudprint-cups/”, line 68, in
    from auth import Auth
    File “/usr/local/share/cloudprint-cups/”, line 24, in
    import six
    ImportError: No module named six

    I’m sure this has to do with the python2-six module, however I don’t see this package available with brew or ports

  30. Simon

    I discovered the beauty of pip and installed the python six library on Mac Os Yosemite, but as others have mentioned above I get the following errors:
    taken from /var/log/cups/error_log

    E [18/Jan/2015:01:59:46 -0600] copy_model: empty PPD file
    E [18/Jan/2015:01:59:46 -0600] [Client 4] Returning IPP server-error-internal-error for CUPS-Add-Modify-Printer (ipp://localhost/printers/XT1060) from localhost
    E [18/Jan/2015:01:59:46 -0600] copy_model: empty PPD file
    E [18/Jan/2015:01:59:46 -0600] [Client 4] Returning IPP server-error-internal-error for CUPS-Add-Modify-Printer (ipp://localhost/printers/Lexmark%5FX6100%5FSeries) from localhost
    E [18/Jan/2015:01:59:46 -0600] copy_model: empty PPD file
    E [18/Jan/2015:01:59:46 -0600] [Client 4] Returning IPP server-error-internal-error for CUPS-Add-Modify-Printer (ipp://localhost/printers/Save%5Fto%5FGoogle%5FDrive) from localhost
    E [18/Jan/2015:01:59:46 -0600] copy_model: empty PPD file
    E [18/Jan/2015:01:59:46 -0600] [Client 4] Returning IPP server-error-internal-error for CUPS-Add-Modify-Printer (ipp://localhost/printers/Print%5Fto%5FFedEx%5FOffice) from localhost
    E [18/Jan/2015:01:59:46 -0600] copy_model: empty PPD file
    E [18/Jan/2015:01:59:46 -0600] [Client 4] Returning IPP server-error-internal-error for CUPS-Add-Modify-Printer (ipp://localhost/printers/Galaxy%5FNexus) from localhost
    E [18/Jan/2015:01:59:46 -0600] copy_model: empty PPD file
    E [18/Jan/2015:01:59:46 -0600] [Client 4] Returning IPP server-error-internal-error for CUPS-Add-Modify-Printer (ipp://localhost/printers/Xoom) from localhost

  31. Hi KevDog,

    As I guess you’ve already discovered, you can install python-six using:

    sudo /usr/bin/easy_install six

    It’s odd those errors are referring to “ipp://localhost/…”, did you add the printers using the /usr/local/share/cloudprint-cups/ script ?



  32. I ran the script again — Here is the console output:
    $ sudo ./
    You currently have these accounts configured:
    Add more accounts (Y/N)? n
    Add all Google Cloud Print printers from to CUPS (Y/N)? y
    Use a prefix for names of created printers (Y/N)? N
    Error adding: Lexmark_X6100_Series (1280, u’server-error-internal-error’)
    Error adding: XT1060 (1280, u’server-error-internal-error’)
    Error adding: Save_to_Google_Drive (1280, u’server-error-internal-error’)
    Error adding: Print_to_FedEx_Office (1280, u’server-error-internal-error’)
    Error adding: Galaxy_Nexus (1280, u’server-error-internal-error’)
    Error adding: Xoom (1280, u’server-error-internal-error’)
    Added 6 new printers to CUPS

  33. Ok interesting, do you get any useful error messages if you try again after enabling debug logging in CUPS ( set LogLevel to debug in /etc/cups/cupsd.conf and restart cups )?



  34. I added two printers (owned by other users but shared with my account) in Google Cloud Print but they do not appear via script.
    I do see them in the Google Cloud Print printers list.
    I also deleted some printers and this removed them from the output, but the new printers do not show up.
    Any ideas?

    Is there anything I can do with Printer ID string to configure the printer manually?

  35. NICE JOB

    This works perfectly on ubuntu 14.04 and debian wheezy and solves the MAJOR problem
    of no printer drivers for linux especially form companies like fujitsu

  36. Any tips on getting a Cups client to print to a GCP CUPS Server? It would save me from having to configure GCP on each of the linux machines.

  37. Hi Simon,

    looks great, but is there a version for the recent Debian 8 Jessie? I have difficulties with the github installation. First I need to install libcups2-dev to run cups-config, looks o.k., but then there is no /usr/share/cloudprint-cups directory, only /usr/share/cloudprint and no

    I am working on a Chromebook on which a very recent Debian Jessie is installed and I have difficulties to find out the proper authentication in cups for my HP-Officejet Pro8610. So Google’s cloud would be fine as it is already running fine within Chrome.

    Many thanks and

  38. Have been using this for about 6 months with no problem. Then our printers stopped printing. I deleted and recreated a Google Cloud printer and tried to install it on CUPS using:

    sudo /usr/share/cloudprint-cups/

    A new printer shows up on CUPS but appears in the printer list like this:

    ▼ Queue Name ▼ Description Location Make and Model Status
    {printer_name} {printer_info} {printer_location} {printer_make_and_model} Paused

    rather than

    DocumentPrinter-XXX DocumentPrinter-XXX Google Cloud Print Google Cloud Print, 1.0 Idle

    and doesn’t work of course. Any idea what has gone wrong?

  39. Hi Dee,

    As far as I know there shouldn’t be anything special you need to setup, just install CUPS Cloud Print on the server you are running the CUPS server on, and setup the client machines to point to the shared CUPS server.


  40. Hi Gernot,

    As far as I know the normal deb package should work, do you get any errors when installing the deb?


  41. Hi Paul,

    That does look odd, does running this command output any obvious errors? :

    sudo /usr/share/cloudprint-cups/



  42. Hi Simon,
    yes, I get errors: complains on line 68 that does not find “six” in line 24 (no module named six).
    Cheers, Gernot

  43. Hi,
    trying to install python-six runs into unmet dependencies: “cupscloudprint: Depends: python-httplib2 but it is not going to be installed
    Depends: imagemagick
    E: Unmet dependencies. Try ‘apt-get -f install’ with no packages (or specify a solution).”
    Seems to be a problem concerning different Python versions. Can I not only remove those commands which take care of older Python versions? reports the same difficulty with “six”, on line 25 in, just after line 24.
    Cheers, Gernot

  44. Hello ,
    i would like this to work from my FreeBSD VPS … 10.1-RELEASE-p9 FreeBSD 10.1-RELEASE-p9 #0: Tue Apr 7 01:09:46 UTC 2015 amd64… running headless with gnome2/mate and tightvnc.
    Printing using cloudprint from within Chromium using the google functionality is working so i’m sure that this should work also in my setup.

    But i ran into the same error as KevDog did on january 19.
    I’ve put loglevel debug in cupsd.conf and restarted cupsd. I have 1 real printer and 1 print-to-google-drive printer defined.

    When i run the script i get:
    # /usr/local/share/cloudprint-cups/
    You currently have these accounts configured:
    Add more accounts (Y/N)? n
    Add all Google Cloud Print printers from to CUPS (Y/N)? y
    Use a prefix for names of created printers (Y/N)? y
    Prefix ( e.g. GCP- )? GOO-
    Error adding: GOO-Canon_MF8000_Series_UFRII_LT (1280, u’server-error-internal-error’)
    Error adding: GOO-Opslaan_in_Google_Drive (1280, u’server-error-internal-error’)
    Added 2 new printers to CUPS

    (prefix or not makes no difference)

    I was curious if KevDog has it solved … since 4 months have passed since his post?

    Anyway thumbs up for this nifty printingsolution…. hope i get it to work.

Comments are closed.