KDEPrint contains a module for CUPS. CUPS, the “Common UNIX Printing System” (http://www.cups.org/), is the most advanced, powerful and flexible of all print subsystems on UNIX® and other Linux® like operating systems. It is still quite new on the horizon, but is based on IPP, the Internet Printing Protocol, the newly emerging standard for the future of network printing. CUPS is clearly the print system of choice for Michael Goffioul, the principal KDEPrint developer.
Experienced KDE users may already be familiar with Michael's utilities qtcups and kups (co-developed with Jean-Eric Cuendet). These were up until now the graphical GUI front ends for CUPS with a strong relation to KDE.
Both utilities are probably still in wide usage. For those not familiar with them, here are short explanations.
qtcups was a graphical front end for the lp or lpr print commands as installed by CUPS. Using qtcups opened a dialog. This dialog let you comfortably select your printer and the print job options. qtcups worked from the command line, or from within applications, when the application in question had a configurable print command.
kups was a graphical wrapper to do the administration tasks for your CUPS server, and the CUPS daemon at the heart of it. You could add, delete, modify, configure, start, and stop printers. You could cancel, delete, move, stop and restart print jobs, and you could change the settings of the daemon, start, stop, and restart it.
The CUPS Module in KDEPrint now contains all (and more) functions that were provided by qtcups and kups in former KDE versions.
Instead of qtcups you now can use the kprinter command. And in place of kups you will in future probably use kcmshell printmgr.
The KDEPrint module for CUPS also lets you fully administer the print subsystem, just like kups did before. It can start, stop and configure your CUPS daemon. It also can stop, start, add and delete ‘printers’ (i.e. printer queues) and printer ‘instances’. Printer instances are printer queues that point to the same physical output device but with a different default setting of print options.
KDEPrint's CUPS module gives you access to a ‘graphical print command’, like qtcups did before.
Use kprinter in any application, even non KDE application that lets you configure your print command. Examples of this are Netscape® and StarOffice, but not most pre-KDE 2.2 programs.
A screenshot how to use the new kprinter print command instead of the old-fashioned lpr... (Of course you need to have kprinter in your $PATH for this short version; otherwise give the full path in the dialog once, e.g. /opt/kde/bin/kprinter. Netscape® will remember this and from now on you always get the kprinter dialog to configure your printouts.
You can also use kprinter from the commandline and see the resulting dialog box pop up:
Just make sure you give at least the file to be printed from the commandline as well: kprinter /usr/share/doc/packages/cups/sam.pdf. This will hand over the CUPS Software Administrator Manual to the kprinter dialogue, which then pops up with the default printer pre-selected.
To pre-select a specific printer from the commandline, use it like kprinter -d DANKAcolorC2000 /home/kurt/linuxtag2001-paper.ps. You can still de-select the printer DANKAcolorC2000 and choose a different one.
You cannot however call kprinter without a print file and hope to open a file selection dialog box from the kprinter window. This is a feature that will be implemented only in the next version.
Through kprinter your are able to ‘ring all the bells and blow all the whistles’ of your printer. You will need a device-specific so-called PPD (PostScript® Printer Description) to enable CUPS to make this nice tandem team do this for you. Read more about this in the section called “Device Dependent Print Options”.