Unsupported
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.
Introduction
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.
Why?
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 reportissues.py script
- Change: Backend now only accepts data from stdin, and refuses to read files passed in
20140814 Release – 14th August 2014
20140702 Release – 2nd July 2014
- New: Split printer class into seperate Printer and PrinterManager classes
- New: OS X package support
- New: Added SELinux support to RPM packages
- New: Added refresh token cron script
- Fix: Use python interpreter when python2 interpreter not available.
- Fix: Setup script shows printer names in multiple columns, instead of one column.
- Fix: Now PEP8 compliant
- Fix: Detect _lp as valid cups group in configure script
- Change: Moved testing data and scripts into 'testing' subdirectory
- Change: Changed protocol to gcp:// instead of cloudprint://
20140308 Release – 8th March 2014
- Fix: Use shorter URI format to workaround issue on older distros having a short max length on printer URIs
20140307 Release – 7th March 2014
- Security: Only log access token to log file in debug mode
- New: Support printers with same name in same account
- New: Log now pipe delimited and contains timestamp
- Fix: Set UseCIEColor when converting postscript file to pdf, fixes printing files generated by Adobe Reader
- Fix: Set page name to Untitled when page printed with no name
- Fix: Open oauth2 config file in read only mode if access denied to write, fixes running under Mac OS X
- Fix: No longer run upgrade script on fresh install
- Fix: Fix the log file permissions on creation or upgrade, only adjust owners and permissions if needed to change
- Fix: Exclude groups that cant be correct for cups group when discovering CUPS group
- Fix: Discover CUPS group by examining CUPS log file ownerships, then PPD directory if logs missing
- Change: Sanitised the indentation of python files
- Change: Removed upgrade message about location of files changing
- Change: Moved common functions into utils class, allows better unit testing
- Change: Centralised logging setup into utils script
20140210 Release – 10th February 2014
- New: Show better error message if printer ppd not found
- Fix: Use python logging facility instead of writing to log files directly, fixes No handlers could be found for logger error
- Fix: Upgrade script now faster with multiple printers, now only gets list of PPDs once and filters for each printer
- Fix: Show better error if renewing OAUTH2 token fails
- Fix: Explicitely define dirs in rpm files list, ensures will be removed correctly on uninstall
- Fix: Deb package now deletes old pyc files on uninstall/upgrade
- Fix: Config file permissions now fixed to allow updating of access token when printing
- Fix: Compile python code on rpm install to ensure old files are removed on uninstall
- Fix: Compile python code on Gentoo install to ensure old files are removed on uninstall
- Fix: Compile python code on arch install to ensure old files are removed on uninstall
- Change: Merged submitjob.py script into backend script
- Change: Error out immediately if lpadmin command not in path on upgrade
20140112 Release – 12th January 2014
- NEW: When invalid OAuth2 code used, show the error message
- NEW: Can now delete associated printers when deleting an account
- NEW: Added test script for post-packaging testing
- CHANGE: Moved files from /usr/lib/ to /usr/share
20131013 Release – 13th October 2013
20131009 Release – 8th October 2013
- FIX: Override default for when applications assume wrong default values ( eg duplex )
- FIX: No longer error on adding printers with duplicate capability names,
- FIX: Landscape printing should now work correctly on all printers
- FIX: Ignore duplicate parameters
- FIX: Detect duplex option
- FIX: Adding printers with prefix no longer errors
- CHANGE: pdfjam dependency now required
- CHANGE: List cloud printers script now shows display name instead of printer name
20130914 Release – 14th September 2013
- NEW: Use display name if available for generating values for ppd
- NEW: Added version param to scripts
- NEW: Added test cases and list of capabilities for testing internal name function
- FIX: Prevent duplicate options and capabilities being generated
- FIX: Post name of capability instead of internal hash, should fix issues with capabilities failing to work correctly
- FIX: Fixed displaying of errors from Google side ( eg when print proxy is down )
- FIX: Allow overriding print params per print job
- CHANGE: Removed gcp_ prefix for capabilities ( unless conflicts with reserved words )
20130718 Release – 18th July 2013
- NEW: PDF now supplied to CCP via CUPS, increases printing speed.
- NEW: Default to A4 paper size in countries that use A4 paper.
- 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.
- FIX: Removed redundant ppdc dependencies.
- FIX: Removed old PPD files, as no longer used.
- FIX: Optimise PDF generated for printing.
- FIX: Only ask once per account for prefix.
- FIX: Fixed final warnings in PPD.
- FIX: Custom printer name should now work.
- FIX: CUPS Backend etc now use source install by default.
- FIX: Add translations into cups ppd.
20130608 Release – 8th June 2013
20130604 Release – 3rd June 2013
20130603 Release – 3rd June 2013
- NEW: Added reportissues.py script to assist in debugging issues
- FIX: Use option name instead of displayname if displayname is missing
- CHANGE: On answering no for adding all printers, ask to add individual printers
- CHANGE: Ask whether or not to use prefix rather than assuming user knows to enter prefix directly
20130526 Release – 26th May 2013
20130519 Release – 19th May 2013
20130510 Release – 10th May 2013
- Fix: Use lp group instead of trying to discover group name dynamically
- Fix: Only update config file permissions when config options changed, not when tokens refreshed.
- Fix: Deb package installs cloudprint files with correct permissions.
20130504 Release – 4th May 2013
- New: Script to delete user accounts ( deleteaccount.py )
- New: Capabilities for printer supplied by Google Cloud Print ( eg Colour, Print tray, etc ) now appear as options in dialogs.
- Fix: RPM package can now be built as a non-root user.
- Change: PPD file now generated dynamically
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
- New: Extra debug data now logged if JSON decoding fails
- New: Added gentoo/freebsd support
- Change: Detect CUPS user group automatically rather than assume group name is always lp
20130101 Release – 1st January 2013
20121208 Release – 8th December 2012
20121202 Release – 2nd December 2012
- Fix: Show all printers, including ones marked as dormant
- Fix: Issue #16 – Arch package, cupsddk dependency is discontinued.
- Fix: Depend on system-config-printer-libs instead of python-cups in RPM
- Change: Backwards compatiblity changes for older versions of python
20120908 Release – 8th September 2012
20120823 Release – 23rd August 2012
20120818 Release – 18th August 2012
- New: Multiple Google user account support, you can now add printers from multiple Google Cloud Print accounts
- 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
- Fix: No longer blindly overwrite printers when adding a new printer with same name as an existing printer
20120812 Release – 12th August 2012
- New: PPD of cloud printers now replaced when upgrading CUPS Cloud Print
- New: PPD now has an IEEE 1284 device id
- New: Device and options now logged when printing
- New: Cloud Print printers now listed as ‘Discovered Network Printers’ when adding printers
- New: Added Colour Model option to CUPS PPD, send Colour option to Google when printing to colour printers
- Fix: Querying available options no longer hangs
- Fix: PDF files should now print correctly
- Fix: More Python3 fixes
- Fix: Fixed error when installing printer with non ASCII characters
- Fix: Check that files exist before attempting to delete them
20120513 Release – 13th May 2012
- Security: cloudprint.conf now only accessible by root and cups
- New: Added Arch Linux support
- Fix: Require python 2.7
- Fix: Log permissions now fixed when recreated by logrotate
- Fix: Fixes to dependencies to require ghostscript
- Fix: Backend script no longer fails if cannot write to log file
20120422 Release – 22nd April 2012
- New: When setting up printers, prompt for an optional prefix for printer names
- New: Added debian and redhat support, package build stubs now in repository
- Change: Renamed Gentoo ebuild to be consistent with new RPM and Deb packages
20120123 Release – 23rd January 2012
- Fix: Require python2 instead of any version of Python
- Fix: Only try to convert to PDF if file isnt already a PDF
- Fix: Cast to string on joining string as part of request, fixes an issue with some files printing
20111110 Release – 11th November 2011
- New: Added utility to list printers
- New: Added setup script
- New: Added application specific password support
- Fix: Print jobs now titled with job name from CUPS instead of hardcoded
- Fix: PPD now presents as a colour printer
- Fix: Now compatible with BSD install
- Fix: No longer send PDF data twice, should half printing time
- Fix: Make install should now install all *.py files
- Fix: Errors now reporting properly to CUPS
- Fix: Check for pstopdf if ps2pdf doesnt exist
20111011 Release – 11th October 2011
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/setupcloudprint.py
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 ):
wget https://niftyrepo.niftiestsoftware.com/cups-cloud-print/packages/cupscloudprint_20160502-1_all.deb dpkg -i cupscloudprint_20160502-1_all.deb apt-get -f install /usr/share/cloudprint-cups/setupcloudprint.py
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 ):
[niftyrepo] name=niftyrepo baseurl=https://niftyrepo.niftiestsoftware.com/rpm/ gpgcheck=1 gpgkey=https://niftyrepo.niftiestsoftware.com/rpm/RPM-GPG-KEY-niftiestsoftware
Then run in a terminal ( as root, or using sudo ):
yum update yum install cupscloudprint /usr/share/cloudprint-cups/setupcloudprint.pyNote: 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 ):
[niftyrepo] name=cupscloudprint baseurl=https://niftyrepo.niftiestsoftware.com/rpm/ gpgcheck=1 gpgkey=https://niftyrepo.niftiestsoftware.com/rpm/RPM-GPG-KEY-niftiestsoftware
Then run in a terminal ( as root, or using sudo ):
rpm --import https://niftyrepo.niftiestsoftware.com/rpm/RPM-GPG-KEY-niftiestsoftware zypper update zypper install cupscloudprint /usr/share/cloudprint-cups/setupcloudprint.py
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 https://niftyrepo.niftiestsoftware.com/rpm/RPM-GPG-KEY-niftiestsoftware rpm -i https://niftyrepo.niftiestsoftware.com/cups-cloud-print/packages/cupscloudprint-20160502-1.noarch.rpm /usr/share/cloudprint-cups/setupcloudprint.py
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 https://raw.github.com/simoncadman/niftyrepo-layman/master/repositories.xml -f -a niftyrepo emerge -va cupscloudprint /usr/share/cloudprint-cups/setupcloudprint.py
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:
[niftyrepo] Server = https://niftyrepo.niftiestsoftware.com/arch 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 /usr/share/cloudprint-cups/setupcloudprint.py
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://github.com/simoncadman/CUPS-Cloud-Print.git cd CUPS-Cloud-Print/ git checkout tags/20160502 ./configure make install /usr/local/share/cloudprint-cups/setupcloudprint.py
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:
/usr/local/share/cloudprint-cups/upgrade.py
Mac OS X 10.7+ - Darwin Based
Download and run the latest package from here, then run in a terminal:
sudo /Library/cloudprint-cups/setupcloudprint.py
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://github.com/simoncadman/CUPS-Cloud-Print.git cd CUPS-Cloud-Print/ git checkout tags/20160502 ./configure gmake install /usr/local/share/cloudprint-cups/setupcloudprint.pyFollow the instructions about authorising CUPS Cloud Print to use your Google Account for printing, and you're done. When upgrading, you should always run:
/usr/local/share/cloudprint-cups/upgrade.py
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 ):
/usr/share/cloudprint-cups/setupcloudprint.py
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 deleteaccount.py script will remove accounts from CUPS Cloud Print:
sudo /usr/share/cloudprint-cups/deleteaccount.py
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/upgrade.py
Fantastic! Been scratching my head and googling this all afternoon, then I find your solution and everything is right with the world again 🙂
Hi Simon
try to find a solution to use your software through a proxy server…
Do you have any idea?
Thanks
Hi Simon
Is it possible to send to Google Cloud Print a PCL file without conversion?
Thanks
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.
Simon
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.
Thanks
Simon
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…….
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.
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”
Questions:
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?
Regards
Bill
Hi Simon
I get the following when trying to install to a Linux Mint 16
W: Failed to fetch http://ppa.launchpad.net/simon-cadman/niftyrepo/ubuntu/dists/saucy/main/source/Sources 404 Not Found
W: Failed to fetch http://ppa.launchpad.net/simon-cadman/niftyrepo/ubuntu/dists/saucy/main/binary-amd64/Packages 404 Not Found
W: Failed to fetch http://ppa.launchpad.net/simon-cadman/niftyrepo/ubuntu/dists/saucy/main/binary-i386/Packages 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
Cheers
Joe Rice
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
Simon
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
Simon
There seems to be a disconnect on Archlinux where the package depends on pycups. python2-pycups seems to have stopped providing pycups (now replaced with the python3 version). Is the author aware of this issue and if not, where can we submit a bug?
https://bbs.archlinux.org/viewtopic.php?pid=1468209#p1468209
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.
Thanks
Simon
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.
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.
Hi Plamen,
Thanks, I haven’t tried CUPS Cloud Print on Yosemite yet, I’ll have to investigate.
Simon
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 ( https://www.google.com/cloudprint/#printers – ‘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.
Thanks
Simon
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?
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 src@niftiestsoftware.com 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/reportissues.py
Thanks
Simon
What’s going on here? CUPS trys to print, encounters an error and then disables the Queue.
CloudPrint;MDL:gcp://mschiller%40gmail.com/__google__docs”
{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’cloudprinting@gmail.com’, 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/reportissues.py”, line 62, in
stdout=subprocess.PIPE)
File “/usr/lib64/python2.6/subprocess.py”, line 642, in __init__
errread, errwrite)
File “/usr/lib64/python2.6/subprocess.py”, line 1234, in _execute_child
raise child_exception
OSError: [Errno 13] Permission denied
Hi Matthew,
That sounds like the permissions/ownerships for the dynamicppd.py 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/backend.py if the permissions of dynamicppd.py have somehow been changed.
Hope this helps
Simon
EDIT: Sorry, should be owned by root, not lp user
I get an error with the installer on Yosemite.
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
system-config-printer-libs
I would like to know the best source for this for openSUSE 13.1
many thanks,
‘ö-Dzin
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?
Thanks,
Paul
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.
Thanks
Simon
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:
system-config-printer-libs
which
Hope this helps
Simon
Hi Paul,
It should work fine using the ‘setupcloudprint.py’ 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 ‘listcloudprinters.py’ 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
Simon
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.
Thanks
Ulrik
Hi Ulrik,
I haven’t really considered doing that as part of CUPS Cloud Print, as that already exists as a seperate project:
https://github.com/armooo/cloudprint/
Thanks
Simon
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!
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
Simon
Tried installing on Yosemite MacBookPro.
Installation brought following error:$ sudo /usr/local/share/cloudprint-cups/setupcloudprint.py
Traceback (most recent call last):
File “/usr/local/share/cloudprint-cups/setupcloudprint.py”, line 68, in
from auth import Auth
File “/usr/local/share/cloudprint-cups/auth.py”, 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
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
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/setupcloudprint.py script ?
Thanks
Simon
I ran the script again — Here is the console output:
$ sudo ./setupcloudprint.py
Password:
You currently have these accounts configured:
@gmail.com
Add more accounts (Y/N)? n
Add all Google Cloud Print printers from @gmail.com 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
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 )?
Thanks
Simon
I added two printers (owned by other users but shared with my account) in Google Cloud Print but they do not appear via listcloudprinters.py script.
I do see them in the Google Cloud Print printers list.
I also deleted some printers and this removed them from the listcloudprinters.py 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?
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
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.
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 setupcloudprint.py.
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
Cheers,
Gernot
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/setupcloudprint.py
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?
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.
Simon
Hi Gernot,
As far as I know the normal deb package should work, do you get any errors when installing the deb?
Simon
Hi Paul,
That does look odd, does running this command output any obvious errors? :
sudo /usr/share/cloudprint-cups/reportissues.py
Thanks
Simon
Hi Simon,
yes, I get errors: setupcloudprint.py complains on line 68 that auth.py does not find “six” in line 24 (no module named six).
Cheers, Gernot
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?
reportissues.py reports the same difficulty with “six”, on line 25 in auth.py, just after line 24.
Cheers, Gernot
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 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC 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/setupcloudprint.py
You currently have these accounts configured:
john.doe@gmail.com
Add more accounts (Y/N)? n
Add all Google Cloud Print printers from john.doe@gmail.com 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.