We have about 15 printers in our office, each one a different make or model, and requiring a different driver, with differing locations as well, ranging from peoples desks to breakrooms. Due to this, many of the computers only have access to a hand full of the availabe printers, and when a printer needs to be replaced, it inevitably leads to many people upset, and unable to print.
One of my friends suggested we use a printer server (CUPS). I have been researching CUPS, and installed it, but I fail to see how it would solve the problem.
From what I see, it is just a fancy printer bridge, and does nothing for me other than log some data that I don't need, and add some complexity to the system. Note: all of the printers in the office are network printers.
Am I missing something? Is there a way in CUPS to have windows and mac clients send the print job to the server, using a generic driver, and also select the destination printer? If so how would I set this up on the CUPS side, and how would it work on the client side? If not is there any software (preferably low cost or free) that would do what I need?
CUPS can simplify printer management in at least three ways:
Transparent Management
With either CUPS alone (using IP printing) or Point'n'Print via SAMBA (which lets you push the driver to the client as well, but can be a pain when it doesn't just work), set up your print queues; use names like "First Floor Copier" rather than make and model. Install the printer to the workstations using a generic PostScript driver.
Now when you want to replace the printer, you just replace the driver in CUPS, and you're finished -- the clients still use the same queue with the generic driver.
If you're already set up for it, you can also use startup scripts to install the printers so you don't have to visit each client initially.
A VBScript to install a Point'n'Print printer on Windows would be something like:
OS X and Linux installation can be as simple as dropping a client.conf into the /etc/cups directory (this installs all CUPS printers; if you are with a large organization using a single CUPS server, this may not be desirable). In a large organization, keep a printers.conf file for each department, and drop it into /etc/cups.
If you have OS X laptops people take home with them, give them a "switch printers" script to add and remove the client.conf as needed; when at work, it installs the work printers, when at home, they have whatever they may have installed at home.
Multiple queues
You can create simplex and duplex queues for each printer (and/or grayscale and color queues) if desired. Alternatively, a single queue per printer with defaults set to duplex and grayscale lowers the number of installed printers, and makes people specifically choose to spend more money.
Of course, all of this can be done at the client as well, but why do it more than once?
Centralized accounting
If your organization bills departments or users for their printing costs, you probably have someone in accounting logging into each printer, grabbing the data, and compiling a full printer usage list. CUPS has some capability for this and quota management built-in, and there are third party backends (such as Pykota) that offer a more full-featured accounting system.
There are tools that can automatically route print jobs based on printer availability / lowest cost / etc. (e.g., PaperCut), but nothing free or open source that I am aware of.