Do CUPS clients need to have drivers installed locally?

The print server running CUPS is the only machine that needs to have the drivers. Read about CUPS on Wikipedia for example - in Overview section it states this quite clearly :

CUPS allows printer manufacturers and printer-driver developers to more easily create drivers that work natively on the print server. Processing occurs on the server, allowing for easier network-based printing than with other Unix printing systems. With Samba installed, users can address printers on remote Windows computers and generic PostScript drivers can be used for printing across the network.

Otherwise, what would be the be the real benefit of running CUPS?


If you're using Samba/CUPS as a print server for windows based clients then the clients will normally have drivers for that printer, although in some cases CUPS can do its own translation. For example, it is possible to set up ghostscript and render postscript to display on a non-PS printer, although the Windows clients would need a PS driver that plays nicely with this.

For Linux clients, the answer is: It's complicated but not. Traditional Unix/Linux does not have a standard native print or rendering API equivalent to Windows's GDI, although libraries such as Cairo can provide this functionality for applications that use them. Most traditional unix applications just print ASCII to stdout or generate Postscript files natively. Device-independent rendering libraries such as Cairo will just render to Postscript through their own driver, which would be bundled on the client with the library.

You will almost certainly find Postscript somewhere in the workflow for a CUPS or older lpr/lpd print system. Typically the clients will produce ASCII or Postscript output. ASCII output will be converted via something like a2ps and Postscript just passed through. The Postscript will be passed through to the printer or a rendering layer based on Ghostscript.

It's been a while since I set up a linux based print subsystem, but IIRC the PS drivers are pretty generic with just a PPD file for the target printer. The clients do not necessarily need to know much about it. Traditionally you just set up queues for printing in different ways (e.g. duplexed, non-duplexed or letterhead) and they become separate print destinations.

If you're using apps with local printer control, for example apps using the GNOME-Print API, or printing files directly with lpr -o options then the print facility can exercise more control over the actual printer destination. For example, particular trays or duplexing options can be selected. If you have a correct PPD file for the printer installed on the CUPS server then these options should work from the client without requiring the client to have additional driver software installed.

EDIT: In your case I think the problem might be that the LBP810 is a winprinter and there were never any Linux drivers produced for it. Your best bet might be to get a different printer, which can be done very cheaply if you approach it right.

Secondhand laser printers are very cheap on Ebay, and you can get a Laserjet 4100 or something similar for about 100 USD, depending on your location. All midrange HP lasers support Postscript or PCL5/6 and will play nicely with Linux and CUPS. You should have little trouble getting one of these to work and used ones are so cheap you can treat them as a throwaway item.