KDEPrint has different faces for different people.
KDEPrint allows users and/or administrators, depending on their rights, access to printing subsystems (CUPS, LPD, RLPR, LPRng, PDQ etc.) through a KDE graphical user interface (GUI). Using KDEPrint, they can print, administer jobs, printers and the printing daemon, all in a comfortable manner.
Experienced users will like the capability to plug any working filter for the print data between the output of their application and the input, into the chosen print subsystem. Some examples for this already ship with “plain vanilla” KDEPrint. Read on.
If a KDE developer needs printing access for his application, he
does not code the printing functions from scratch. Before KDE 2.2 this
service was provided by the QPrinter
class, a
library function of the Qt™ Toolkit. The
QPrinter
class relied on the out-moded
“Line Printer Daemon” (LPD). The
KDEPrint library bases itself firmly on the more modern Common UNIX®
Printing System (CUPS), while at the same time keeping backward
compatibility with LPD and other legacy, or less
elaborate, print systems. It also “leaves the door open”
for any new development that might occur.
For KDE developers to use the new KDEPrint class in their
applications, they require only minimal changes to their code: for every
call of QPrinter
, they just need to change this to
KPrinter
. Replacing one (!) letter in a few
spots, and automatically they are done; their application can then use
all of the features of the new KDEPrint library.
More ambitious developers, or ones with special requirements, can do more: despite KDEPrint's feature-rich framework, they are still able to customize the print dialog of their application by creating an additional “Tab”, where their extensions to the standard KDEPrint will feel right at home.
This last mentioned feature has not been used widely inside
KDE so far, as developers are not yet fully aware of KDEPrint's
power. Expect more of this in the near future. One example I
discovered is the KCron application. It lets you edit the crontab
through a GUI. The developers have implemented a printing feature
that lets you (or root
)
choose if you want to print the whole of crontab (for all users) or
just the part that is marked. You can see the effects on KDEPrint
in the following screenshots.
This shot shows a sample from the KCron utility.
The dialog to configure KCron's printing options: the additional tab titled Cron Options is from inside KCron, not KDEPrint; it is a special extension added by the KCron developers for printing purposes, not originating from, but executed by KDEPrint. Developers of other applications are free to implement their own goodies, if they feel need for it.
KCron's addition to the KDEPrint dialog.
KDEPrint's easy-to-use interface for all supported print subsystems of course does not eliminate basic traditional weaknesses of some of those systems. But it smooths some rough edges. Different users may use different printing systems on the same box. A user is free to even switch “on the fly”, from the print dialog, the print subsystem to be used for the next job. (This is possible if different systems are installed in a way that they don't “get in each other's way”.)
Most UNIX® users are used to LPD printing. LPD provides only basic printing functions, is very inflexible and does not utilize the many options of more modern print systems like CUPS. While also working remotely over any distance (like every TCP/IP based protocol), LPD lacks bi-directional communication, authentication, access control and encryption support.
KDEPrint can use CUPS to support:
Querying the LAN for available printers,
Basic, Digest, and Certificate Authentication,
Access Control based on IP addresses, net addresses, netmasks, host- and domain names,
and 128-Bit TLS or SSL3 encryption of print data, to prevent eavesdropping, or at least make it much more difficult.
This makes KDEPrint a much more robust and reliable solution than using the venerable LPD.
You get access to KDEPrint, or parts of it, in four different ways:
through your applications: if you call the printing dialog (either File+Print...) or the button with the little printer icon on it; this opens the printing dialog.
through the typed command kprinter in a terminal or a Konsole window or from the Run Command... mini-CLI window: this also opens the printing dialog.
from the button, starting KControl, and then go to
System+Printing
Manager. This opens the KDEPrint
administration which is part of the KDE Control Center and also lets
you switch to other parts of the KControl
from a command line (Konsole or
mini-CLI) type
kcmshell
.
This opens just the KDEPrint part of KControl to change your settings
printers
Starting the kprinter dialog from a Run Command... window.
Here is a Kivio drawing of the kprinter dialog as it pops up after being started... You can always add a new printer by clicking on the small Wizard button (marked red/yellow in this drawing).
kprinter dialog started (Kivio draft drawing)
Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team