Chromebooks suck. They are a tablet pretending to be a computer. Or a computer pretending to be a tablet. But even real tablets have a real operating system that is useful. Google’s ethos is to strip out everything to keep things as “simple” as possible but in so doing, make it impossible to do things that aren’t on the very narrow path that Google expects you to follow. And obviously, many of us do venture off that narrow path and that is when it becomes clear just how much Chromebooks suck. Or maybe more specifically, ChromeOS. This post is a litany of the ways Google has screwed me when it comes to printing from a Chromebook and how I eventually was able to print – at least until Google screws it up again.
The Chromebook arrived in the house a maybe 4 or 5 years ago. I don’t remember what printer we had at the time but it wasn’t a great printer. Shortly after the Chromebook arrived, we got an awesome printer, the Canon MF733cdw – a color laser printer that shoots out pages quickly and there’s no ink to clog up. However the Chromebooks couldn’t print directly to it because of course not. Google’s answer was to use Google Cloud Print which meant that things to print would need to go to a Google Cloud somewhere before getting to the printer. And it was a bit of a hassle to set up the printer to use it, but whatever – at least it worked. And for the few times we needed to print from the Chromebooks, it was fine.
Then Google decided to turn off the Google Cloud Print service in December of 2020 because of course they did. Why continue to offer that service when it is plugging a hole that they created? Better to just abandon those who were relying on it. So I needed to figure out how to print from the Chromebook directly to the printer. I did at the time figure out how to do that though I didn’t document it. It seemed to be some combination of configuring the Chromebook printer to send it to a Generic PCL device and choosing the right port and queue info. That worked for a while.
Something changed recently. The Chromebook is now reporting that it is too old to get any more updates and that the last one installed is the last one it will get. Setting aside how annoying *that* is, it at least confirms that there was a ChromeOS upgrade that happened. And at least since then, now even this Generic PCL trick isn’t working.
I figured I’d delete the printer and re-create it with the same info as I had before. Maybe it just needed to be done over. Nope.
I should note that a number of times when trying this, I tripped over what appears to be a bug in ChromeOS with the printer setup. If you want to set up an IPP printer, and you enter all of the data as you want it, the “Add” button changes to grey after clicking on it and never returns. So I found that I would need to set it up as HTTP and then it would let me run through so that I could then return to edit it the way I wanted it initially. Perhaps that was a sign that HTTP was connecting to something while IPP was just hanging up. Regardless, that’s a really poor OS implementation; if not an outright bug, it’s at least user-hostile.
The next approach was to try every combination of PCL/PDF/PS options in the Generic driver family and every combination of protocols and ports and printer queue. Occasionally, I’d see a green dot show up on the printer definition indicating that the queue had connected to the printer. But I then discovered that it meant that the port was open which in many cases meant I was further off from being able to print – i.e. I was connected to the printer’s maintenance web page, not to a queue that could print.
I then decided to try creating my own PPD file or finding one that Canon ships. I was able to get the Linux package and find the PPD files within it. I tried using an existing one and modifying an existing one. But in both cases, ChromeOS said that there was a “format” problem. Lots of digging led me to this helpful post explaining that ChromeOS isn’t ever going to accept a PPD file that works with this Canon printer. Because, again, ChromeOS sucks.
I briefly looked into using a print server set up in Crostini to handle requests from ChromeOS. But this Chromebook doesn’t have a huge hard drive and it doesn’t already have the Linux world running on it so I didn’t want to add that weight to the Chromebook.
By now, I was well past the point where I’ve burned up more time on this than I would have if everything I ever wanted to print from the Chromebook was just “printed” to a PDF and put on USB stick and moved to a real computer where it could be printed. But that also meant that if I gave up, then I would have wasted all of that time getting to nowhere.
In a desperation Google search (yes, their search still reigns supreme but did I mention their OS sucks?), I happened upon an extension to Chrome that would print to CUPS. I was skeptical since I felt like I had already been through all of the various attempts at what could be set up and I assumed that the extension was sort of just a wrapper to all of that. But I gave it a shot and it worked pretty much right away.
The steps to set up are easy – install the extension, then pin it to the extensions panel. Click on it to bring up the control and then immediately click to Manage Printers. In the Manage printers, I entered the name of my printer as “Canon MF733c” left the printer type set to “Auto-Detect”, and entered the IPP address that matches my printer IP (whatever IP address you would type in to the address bar of a web browser to see the management tools) followed by “/ipp”. So if the printer’s IP address was 123.456.789.012, then the address for the printer here would be “http://123.456.789.012/ipp”. I clicked the Save button and then clicked the “i” to test that printer I created. It showed the correct printer information coming back, so I tried printing and the printer started printing right away.
However. I got cocky. I figured maybe it was just a question of trying the same printer and queue settings that the extension used so I tried again a bunch of different ways. Still no luck. So I deleted all of the junk printers I had attempted and then ran the test with the extension one more time. It didn’t work now. So I cleared out everything including removing the extension and clearing the cache and reinstalled the extension with the same information but still no printing. Eventually, I power-cycled the printer and then it worked perfectly again. Perhaps the attempts at setting up the printer without the extension were causing the network device in the printer to be jammed? Stuck with bad data so it couldn’t see the good data coming after it? And if so, perhaps one of the settings would work without the extension but I’d need to reboot the printer after every attempt to make sure that it didn’t have a jammed queue?
In the end, for anyone else with this Canon MF733c or one similar to it that can’t print from a Chromebook, my suggestion is to delete all ChromeOS printers, power-cycle your printer, install the Extension and configure it as 2 paragraphs above, and you should be all set. Though it will be interesting to see how stable this solution remains – i.e. will I need to reboot the printer every time I want to print from the Chromebook? And yet even if that is needed, it will still be better than moving the file from the Chromebook to a computer through a USB drive.