April 19, 2019

.comment: Happily In My CUPS - page 2

Getting Serious About Printing

  • January 17, 2001
  • By Dennis E. Powell

There are several flavors of CUPS, a free version that works if you're lucky and a pay-for version that costs from a fair amount to a whole lot that works if you're unlucky. That's because the free version comes with PostScript Printer Description (.ppd) files, which are tantamount to printer drivers, for Epson and Hewlett-Packard printers only. If your printer is one of these or can be set to emulate one, then you're in business, though it may be that not everything will work exactly as it should. CUPS is one of those commercial/open source projects. No one knows whether it, like the others, is likely to succeed commercially, in that people can also develop for it for free. Hacking is possible: For instance, moments ago I copied the .ppd files from kdesupport in my kde source tree (kdesupport/libaps/etc/printers/ppdlib, if you must know) to /usr/share/cups/model, and when I restarted the CUPS daemon (/usr/sbin/cupsd, but scripted in /etc/rc.d/init.d), they all appeared and were available to CUPS. The one I tried didn't work, but it was available, and I suspect it wouldn't take much hacking to make it work perfectly. The pay-for versions cost from $49 to nearly $500, depending on such things as whether it's single-user or being used on a network. (The free version supports at least some network printing protocols.)

And it is the free version that I tried, though I can see how the enterprise would be quick to spring even $500 for the full circus -- you're going to pay an IT guy that much to set up LPRng (or, more likely, to learn that he can't, after which CUPS professional, a/k/a ESP Print Pro will be purchased anyway), and you're still up the creek if you change your printer configuration. CUPS makes setup and reconfiguration laughably easy.

The free stuff is available at the CUPs Web site in source tarball and .src.rpm, plus binaries for a selection of platforms, including several flavors of Linux (and packaged as .deb, .rpm, and tarball). I built from source (pretty much) uneventfully on one machine here, and used the Linux-2.2 rpm on another. In both cases installation was unremarkable, though make install put the stuff that was supposed to go into /etc/cups into a toplevel /cups instead, which caused the whole thing to bomb until I got it figured out.

A caveat: CUPS overwrites whatever miserable excuse for a print spooler you currently have, so if you spent a week making it work and have developed affection for it and the fact that it only prints one character per page, by all means archive it someplace before you install CUPS. I took great delight in doing rpm -e LPRng before I did make install. Then again, I had absolutely nothing to lose.

Once it was installed properly (which happened completely uneventfully with the rpm), I did /etc/rc.d/init.d/cups start to start the daemon.

And had I read the docs a little more carefully, I would now have saved myself some time, because I didn't realize that it has more than just a commandline configuration utility, which like many such is a little obscure until you master it, after which it is probably quicker than any other configurator. This means that if you install CUPS for a living, you'll do it from the console, but otherwise you probably won't.

Because I didn't pay enough attention to the documentation, I downloaded and built QTCups and Kups, which are, respectively, QT and KDE front ends for the program. (There are similar programs for GTK and others as well.) Having gone to all that trouble, I'm including screen shots of them. QTCups isn't as ugly as it looks, unless you're still experimenting, as I am, in hope of oneday making font anti-aliasing in KDE2 useful. Kups is attractive. Both, as it turns out, are unnecessary (if you have a browser, which in that you are reading this we can reasonably assume that you do). Once CUPS is running, fire up a browser -- any browser, and in the location space type http://localhost:631/admin and hit enter. You'll be prompted for the root username (it's "root," big surprise) and the root password, whereupon you'll see the CUPS administration tool in all its splendor. (The screenshot I include here was taken during my flirtation with using kdesupport's .ppd files, which is why so many printers are listed. This was midway in the new printer process, which really does require no documentation unless you're doing something extremely exotic.)

Of some annoyance to me was the fact that the existing H-P drivers made no allowance for the existence of a PostScript printer, and I have a genuine H-P LaserJet PostScript cartridge. Yeah, I know that printing using the cartridge is for some reason actually slower, but I have the thing and would like to use it. (And, oddly, until yesterday StarOffice would only print to an actual PostScript printer, about which more in a minute.)

Once a printer is added, you're told exactly that. Click on the printer name and you go to a screen that offers a number of options, one of which is configuring the printer (which do; it lets you tune things a little -- for instance, set the paper source and turn on duplexing if you have choices as regards those) and another of which is printing a test page (which also do, for obvious reasons). Then you're done.

Most Popular LinuxPlanet Stories