CUPS Cloud Print

Found CUPS Cloud Print useful?


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”

  1. Hi Simon,
    I just tried to follow your instructions for Arch, Chakra, etc. (I am using Manjaro).
    After adding the repo, I get this:
    $ pacman -Syu cupscloudprint
    :: Importo la chiave PGP 2048R/C5541D9D, “Simon Cadman “, creata: 2012-03-14? [S/n]
    errore: niftyrepo: signature from “Simon Cadman ” is unknown trust

    Can you help?

  2. Hi Cris,

    Sorry, the instructions were slightly wrong, I’ve updated them now, in /etc/pacman.conf you also need to add ‘TrustAll’ to the SigLevel line in the repository.

    Hope this helps



  3. Hi João,

    That fix refers to an issue with the prefix functionality, unfortunately you’ll need to delete and re-add any printer you rename.

    Hope this helps


  4. I realize you mention a specific unresolved dependency being ok to ignore, but the problem is that some systems (like YAST in OpenSuse) trigger exceptions and pop ups every time it encounters these while evaluating the system.

    nothing provides system-config-printer-libs needed by cupscloudprint-20140112-1.noarch

    That means you have to deal with this manually every time you go into yast/zypper to do any package management.

    Surely something can be done about this in the RPM?

  5. Hello, I need some help.

    For a few months now, when I print through CUPS Cloud Print, from my Ubuntu 12.04 LTS it gets stuck somewhere on the way to the printer. On the Google’s Print Job page, shows that some kind of an error took place.

    How do I fix it?

    Greetings, D

  6. Under fedora 20 the path to the setup py is /usr/share/cloudprint-cups/

    otherwise nice work. Thanks!

  7. Hi,

    This should be fixed next time you update your system, I’ve added a dummy ‘system-config-printer-libs’ package with a 0 version number (to prevent it being accidentally installed on other RPM based distros), which solves this error.

    Unfortunately ( unlike some other package systems ) RPMs don’t support optional dependencies, or choosing one of multiple dependencies, so this is the only way I’ve found to solve this, other than creating a separate RPM repo exclusively for openSUSE.

    Hope this helps


  8. Hi Dobri,

    I had this issue once before with my HP printer, and it was because the firmware needed upgrading on the printer ( it seemed that I also needed to re-initialize it back with HP e-printcenter afterwards ).

    Hope this helps


  9. Brilliant!!!! There is no Ubuntu driver that will work with my MG7120. I banged my head against the wall for a while, but this totally solved the problem. Bravo!!!!

  10. Hi, thanks for writing the app… I’m trying to install it on a RaspberryPi, but when I enter the following;
    sudo add-apt-repository ppa:simon-cadman/cups-cloud-print

    I get the error message ‘Error: could not find a distribution template’

    Can it run on Raspbian?

    Thanks for your help

  11. Hi, I’ve been using your software successfully on Ubuntu, but I would also like to install it on my Rasberry Pi running Raspbian…. Does it work on Raspbian too?

  12. Hi Richard,

    Currently the Ubuntu PPA only works with Ubuntu, but the “Debian Squeeze+ , MEPIS 11+ etc – .deb file based installation” instructions should work with Raspbian. I’ll look at adding a Debian PPA-type repository in the future.



  13. Hi!

    I am on Version 32.0.1700.102 Built on Ubuntu 13.10, running on LinuxMint 16 (32.0.1700.102-0ubuntu0.13.10.1~20140128.970.1)

    The install went absolutely without any problem and I can see my “Cloud Print” printers in my printing dialog box.

    But when I launch a print job, pop-us display ok messages, including the “printed” message. The Google Cloud Print log shows that my document has been printed, too, but… nothing has been printed.

    The next minute, and without changing anything, I launch the “Try it now!” test page through the Google Cloud Print support pages, and that page (flying documents, clouds, man holding a smwartphone in left hand, etc.) gets successfully printed by the same printer as before.

    Can anyone please help me out?

    Thanks in advance!

  14. Hi Simon,

    Thanks for the response. I can print on it, from other devices, so it is not a Google problem. Only when printing from the CUPS gives this “Error” message, that shows in the Google Cloud Print Control panel (the Print Jobs page).

    🙂 D

  15. Hi Simon,

    it seems that You didn’t got my comment on Your project. I’m playing around some time with cups pdf-creation. Because of that I inspected Your backend to learn and to improve my own approach. Generally a backend should not perform any filtering or manipulation. Filtering is specified in the ppd. If there are no *cupsfilter lines in the ppd, cups assumes the printer to accept ps and the backend always will receive ps files. This is the case in Your approach. Your backend transforms these ps files with ps2pdf. But now also on Linux (as in OS X) pdf is the standard print job format. Thus in Your approach pdf is transformed to ps and then back to pdf. I suggest to add lines like the following to the ppd:

    *% added cups filter directives
    *% the printer accepts pdf und ps, which is filtered to pdf
    *cupsFilter: “application/vnd.cups-pdf 0 -”
    *cupsFilter: “application/vnd.cups-postscript 100 pstopdffilter”

    Then the backend is fed with pdf and no more transformation is needed. This approach is used in PDFwriter for OS X, which therefore is much better than cups-pdf. Maybe the fault is google’s one, if they provide the ppd (I’m not familiar with GCP). You can also perform page orientation etc. by the pdftopdf filter of cups, which should be easier than other ways.

    Best wishes


  16. Hi Dobri,

    Interesting, can you get the error from the list of jobs ( clicking the ‘details’ button on the print job )?

    It’s also worth checking you are running the latest version of CUPS Cloud Print ( currently 20140210 ).



  17. Hi Andreas,

    I don’t seem to have got your other comment, it may have been caught in the spam filter for some reason ( I get about 100 spam messages a day so don’t always have time to check them all completely without deleting them ).

    Those lines are already present the generated ppds ( see here , lines 113 and 114 ), albeit in the reverse order ( the second to last parameter is the ‘cost’, and lowest is used by default, so the pdf format should be used by default on versions of CUPS that support PDF printing ). I believe this was added in release 20130718.

    The ps2pdf part of the backend script is still present for older versions of CUPS that supply the postscript files by default ( I believe the version of CUPS in CentOS 6 still sends postscript files ).



  18. Does what it says on the tin perfectly and without fuss.

    Made one of the aspects of switching to Linux very easy.

  19. Hi Simon,

    This is what I get:

    CUPS Cloud Print | Niftiest Software
    Xerox Phaser 3100MFP
    Feb 24, 2014, 9:50:40 PM
    Last Updated
    Feb 24, 2014, 9:50:43 PM

    To be sure, that I have the latest version (because I don’t know how to check it 😛 ), before the printing I removed and re-installed my account and the CUPS-Cloud printer.

    Thank’s for the support and sorry, if I am a bother. 🙂

  20. Hi Dobri,

    Can you try the latest release ( version 20140307 ) please? I’m still not sure what the problem you are having is, but I did make a change that fixes a possibly similar issue that was reported with Adobe reader.

    You can check the version you are running using your package manager ( on Ubuntu the command would be: apt-cache show cupscloudprint ).


  21. Hi Axel,

    Precise Puppy seems to be based on Ubuntu, so the Ubuntu ( PPA based ) install instructions should work.

    Hope this helps


  22. Hi Simon, I test installation on Puppy
    Ubuntu ( PPA based ) install instructions do not work in my Puppy.
    But, deb file based installation works the first step.
    The last message befor stop is:

    dpkg:package cupscloudprint depends on python2.7 python2.6, which cannot be satisfied

    Can you help my please?

  23. It´s possible to rename the printer in cups to a different name defined by the CUPS Cloud Print?

  24. Hi Axel,

    You should be able to install the package using dpkg with the –ignore-depends parameter, you may just need to install these dependencies through Puppy manually:

    python2.7 or python2.6, cups, python-cups, python-httplib2, imagemagick, ghostscript

    Hope this helps


  25. Thanx
    This procedure & command works fine at my Ubuntu 14.01

    I can print on Cloud Printer.

  26. First of all: Nice project, keep it up!

    second – not actually printing results, but still promising

    Printing the Testpage from works like a charm – unfortunately I get an error page printed whenever I try to use the cups printer created by cupscloudprint!
    What I get is:

    PWG ERROR – URFPWG Decoding Fail
    POSITION: 0x2333 (9011) <– that line differs a lot of course…
    SYSTEM: src/xl_dec
    LINE: 757
    VERSION: SPL-C 5.59.01 06-19-2013

    I am using Fedora 20 – do I have to use any ppd files for the printer to get it working for cups?
    as Google is handling my Samsung printer just fine, I suspect the error elsewhere…

    any idea?

  27. Hi Chris,

    That seems to be a unique error, but I’ve found a page where someone printing using Chromium has a different ‘PWG ERROR’ message here. Does printing within Chromium work for you ( from with the print dialog after setting Chromium/Chrome up with Google Cloud Print )?

    The PPD file that CUPS Cloud Print sets for your printer ( should be called something like ‘cupscloudprint:account:printername.ppd’ when listed with the ‘lpinfo -l -m’ command ) should be correct.



  28. Hi Simon,

    Thanks a million for this.

    Just installed on Mac OS X Mavericks. I was having trouble printing from Mavericks to my Home and office printers connected via USB to Windows machines. So I have set up cloud print via chrome on those machines and so far it is working like a charm.

    Just a few comments:
    1. While installing, it said env: /usr/bin/python2 not found. I worked around this with the command sudo ln -s /usr/bin/python /usr/bin/python2
    2. Suppose I add one more printer to my Google cloud print account, how do I install that printer in Mavericks? Do I run the set up Python script again and choose printers to install one by one?

    Thanks and regards


  29. When trying to install, I get the following error

    Downloading Packages:
    warning: rpmts_HdrFromFdno: Header V4 RSA/SHA1 Signature, key ID c5541d9d: NOKEY

    Public key for cupscloudprint-20140308-1.noarch.rpm is not installed

    Installing on centos

  30. When setting up cups cloud print with the, I get the following error RuntimeError: failed to connect to server

    How do I fix this?

  31. Hi Vivek,

    Great, glad it is working for you.

    1. This should be fixed in the next version, that workaround is the simplest one for now.
    2. You should just need to re-run the setup script and it should detect new printers and add them ( just say ‘Y’ to ‘Add all Google Cloud Print printers from src to CUPS (Y/N)?’, it will only add the new printers, and won’t duplicate any existing ones ).



  32. printer GCP-Printer uitgeschakeld sinds do 14 aug 2014 09:27:46 CEST –
    /usr/lib/cups/backend/gcp failed

    D [14/Aug/2014:09:27:46 +0200] [Job 14273] Sending document to Cloud Print
    D [14/Aug/2014:09:27:46 +0200] [Job 14273] Traceback (most recent call last):
    D [14/Aug/2014:09:27:46 +0200] [Job 14273] File “/usr/lib/cups/backend/gcp”, line 155, in
    D [14/Aug/2014:09:27:46 +0200] [Job 14273] elif printer.submitJob(‘pdf’, pdfFile, jobTitle, cupsprintername, printOptions):
    D [14/Aug/2014:09:27:46 +0200] [Job 14273] File “/usr/share/cloudprint-cups/”, line 560, in submitJob
    D [14/Aug/2014:09:27:46 +0200] [Job 14273] (‘capabilities’, json.dumps(self._getCapabilities(cupsprintername, options)))
    D [14/Aug/2014:09:27:46 +0200] [Job 14273] File “/usr/share/cloudprint-cups/”, line 485, in _getCapabilities
    D [14/Aug/2014:09:27:46 +0200] [Job 14273] return self._getCapabilitiesDict(attrArray, self[‘capabilities’], overridecapabilities)
    D [14/Aug/2014:09:27:46 +0200] [Job 14273] File “/usr/share/cloudprint-cups/”, line 434, in _getCapabilitiesDict
    D [14/Aug/2014:09:27:46 +0200] [Job 14273] if hashname == Printer._getInternalName(capability, ‘capability’):
    D [14/Aug/2014:09:27:46 +0200] [Job 14273] File “/usr/share/cloudprint-cups/”, line 341, in _getInternalName
    D [14/Aug/2014:09:27:46 +0200] [Job 14273] if details[‘name’] == itemName:
    D [14/Aug/2014:09:27:46 +0200] [Job 14273] TypeError: string indices must be integers
    D [14/Aug/2014:09:27:46 +0200] [Job 14273] Backend returned status 1 (failed)
    D [14/Aug/2014:09:27:46 +0200] [Job 14273] Printer stopped due to backend errors; please consult the error_log file for details.
    D [14/Aug/2014:09:27:46 +0200] [Job 14273] End of messages

Leave a Reply

Your email address will not be published. Required fields are marked *