It took me a little while to figure out how to get a machine running Windows 7 to print to a remote CUPS printer so I thought I’d document what I did in case it helps others (as well as myself as I am sure I will forget this if I don’t document it)…
The first step is to go to the “Devices and Printers” control panel. There one has to click on the “Add Printer” link at the top (also available in the right-click menu).
In the dialog window that follows, select “Add a network, wireless, or Bluetooth printer”. Windows will then try to automatically find an available network printer. At that point I stop the search by clicking on the “Stop” button, and the click on “The printer that I want isn’t listed”.
In the next dialog, “Find a printer by name or TCP/IP address”, select the option “Select a shared printer by name”, and enter an URL like the following:
http://<IP address or hostname of the CUPS server>:631/printers/<Name of the CUPS printer queue>
Then click “Next”.
The next step is important — it’s where a printer driver must be selected. Normally, the CUPS server knows what printer it has connected. In that case on needs to send print jobs in a format that the CUPS server can understand, like Postscript or PDF — the CUPS server will convert to the appropriate language understood by the printer. However, it might be the case that the CUPS server has a raw queue, in which case the CUPS client must sent the print job in the format that the printer can understand.
So, when selecting a driver in the Windows “Add Printer Wizard”, one can do the folowing:
- If not using a raw queue on the CUPS server, select the “Generic” manufacturer, and then the “MS Publisher Color Printer”. This will cause the print job to be of type “application/postscript”, which CUPS can then convert to the right printer language.
- If using a raw queue on the CUPS server then select the appropriate printer driver so the Windows client sends the job in the format that the printer can understand.
- As always, the Arch Linux wiki has great information. Specifically, the Sharing via IPP section of the CUPS/Printer sharing page contains some key information:
“[…] install the native printer drivers for your printer on the Windows computer. If the CUPS server is set up to use its own printer drivers, then you can just select a generic postscript printer for the Windows client(e.g. ‘HP Color LaserJet 8500 PS’ or ‘Xerox DocuTech 135 PS2’).”
Note that I didn’t have luck using the “HP Color LaserJet 8500 PS” printer driver — it would generate a printer job in the “PJL encapsulated PostScript document text” format, which CUPS would have problems handling. But the “MS Publisher Color Printer” worked fine.
- This page contains good information on how to create a CUPS raw printer queue:
To correct this, the user must open the OS start menu, and proceed to settings. Pick out the devices icon and switch off let Windows manage my default printer. This is of utmost importance because if this icon is on, Windows will automatically set default to the printer recently used. Once the managing icon has been disabled, Windows will allow printing on the desired printer.
After upgraded to Windows 10, your printer might not work properly or even can’t work as the printer driver is out of date. In this case, you need to upgrade the printer driver too. Following the methods to make your driver is the compatible one.