Workshop at Linux-Kongress 2002 Cologne, Germany:

 

 

 

 

 

 

 

(I.) KDEPrint --

Ready for Enterprise Desktop

 


Table of Contents



(I.) Introduction to KDEPrint: Ready for the Enterprise Desktop(I-1.) Overview: KDEPrint Now Ready For Enterprise Desktop! (I-2.) kprinter -- -- Your Versatile Print Dialog (I-3.) kjobviewer -- -- Evolving Into A Powerful Queue & Spool Manager (I-4.) "Filter Command Editor" -- -- Getting To Grips With enscript & Co.
  • About the Author:


  • (I.) Introduction to KDEPrint:
    Ready for the Enterprise Desktop



     

    This document is a collection of several other, describing the different components of KDEPrint 3.x.

    It is work in Progress. Eventually it will become the new KDEPrint Handbook

    At the present time it includes...

    • ...an overview, summarizing the new features in KDEPrint;
    • ...a kprinter description, detailing print options contained in the KDEPrint graphical printing dialog;
    • ...a kjobviewer description, enumerating the sophisticated job and queue management actions needed to run printing in a large enterprise or organization environment;
    • ...an introduction to work with Filter Command Editor, which allows everybody to plug in any Third Party filter program into KDEPrint.

    KDEPrint is one of the most outstanding features in KDE-3..x making it ready for enterprise desktop computing. KDEPrint supports different underlying print subsystems, like LPRng, RLPR, Generic Unix LPD or even any other external program through one consistent user interface.

    Most spectacular is its power when running as a frontend to CUPS, the Common UNIX Printing System. CUPS is the most modern and powerful of all printing system available for UNIX-like systems. It is based firmly on IPP, the new IETF- and industry standard for network printing.

    While providing support for legacy spoolers (and even continuing development on this plane) the KDE Printing Team recommends all users to use CUPS for best control of their printing operations. CUPS support inside KDEPrint is the most complete at the present time and will always strife to keep pace with the rapid CUPS development itself. We are not alone with our preference: Apple has recently chosen to base its printing system for Mac OS X and Darwin full-square on CUPS (and there are even rumors saying Apple's scouts were only considering CUPS after they had read about our earlier recommendation and after they had evaluated KDEPrint 2.2.x.... but that's just rumors ;-) . Also, many Linux distributions are more and more moving into the direction of CUPS (with some of them, like Mandrake, Caldera, Lycoris and Conectiva using it as their primary choice).



    konqueror: showing driver optioins of a professional printer
    The next version of Konqueror will let you browse through printers, jobs and driver options of your printing system...




    by Kurt Pfeifle, <kpfeifle@danka.de>
    documentation of KDEPrint,
    Network Printing Consultant,
    Danka Deutschland GmbH

    (I-1.) Overview:
    KDEPrint Now Ready For Enterprise Desktop!

    Short description and summary of new features in KDE-3.0

    The most outstanding feature of KDE-3.0.x for enterprise desktop computing is the new version of KDEPrint. KDEPrint's modular design makes it easy to support different print-subsystems (like CUPS, LPRng, RLPR, Generic Unix LPD or even any other external program) through one consistent user interface.

    Especially if used in conjunction with CUPS, the Common Unix Printing System, KDEPrint will pose as a powerful factor to make KDE conquer many enterprise desktop workstations in the coming months and years. CUPS is often already contained on your Linux-CD; it is the default printing system for Mandrake Linux; other versions for supported operating systems are available from Easy Software Products at CUPS.org for all flavors of Linux, and many commercial UNIX brandnames. By providing a KDE interface to CUPS, KDEPrint brings to the light of the day a lot of dearly-desired CUPS features. These were and are contained in CUPS already for a long time, but were so far hidden in obscure commandlines and seldom-read man pages.

    Comfortable printing for home users

    KDEPrint had already satisfied most needs of an individual desktop user in its last version. If the basic print-subsystem of the KDE-computer is CUPS (which is recommended by the KDEPrinting Team), one could already select, change and save all details of job options dynamically. One could also create fixed sets of those options under a "speaking" name (like " infotec/duplexed-stapled"), called "instances" for a certain printer. This way, an instance would appear under its own name inside the printer list. The new instance makes the pre-defined option set available with one click, instead of going through the whole process of option setup for each new job again.

    Many inkjet printer types are able to print photographic quality now when driven by ESP PrintPro, Gimp-Print, HPIJS, TurboPrint or similar driver packages. KDEPrint, since version 2.2, provided a complete user interface to all these options. It reduced manipulation of gamma values or the color channel value of Cyan to a simple movement of the appropriate slider with the mouse. It even provided a visual feedback about the fundamental effect of the setting through a live-updated sample-preview image.

    Powerful features benefitting all network and Enterprise printing needs

    Now KDEPrint reaches one step further: With the strong help of CUPS as the printing framework, it is now geared to construct and command an elaborate enterprise network printing system, complete with full user and administrator control over multiple job queues. In many aspects it is way ahead in functionality and usability compared to built-in print server solutions on alternate OS platforms:

    Use KDEPrint in non-KDE applications

    The power of KDEPrint is not limited for use with KDE Programs only. It is also offered to and works flawlessly for other third party programs: The only pre-condition is, that the program in question allows to manually configure its print command, rather than having a hardwired "lpr" built-in. Just use "kprinter --stdin" as your new print command. Examples known to work are practically all GNOME programs, StarOffice, OpenOffice, CorelDraw for Linux, Abiword, Netscape , Mozilla, Galeon, Opera, Acrobat Reader , gv and many more. For details see the hints on the KPEPrint website "Using KDEPrint outside KDE".

    kprinter

    kprinter remains the already well known print dialog from KDE-2.2. It is the successor to the still widely used, but deprecated qtcups print command. kprinter has been extended with a lot of new features. While qtcups worked with CUPS only, kprinter now works with all available print-subsystem modules. Of course, as with all components of KDEPrint, the amount of available features depends on the actual print subsystem used for your computer.

    And all those "experienced" kprinter users from KDE-2.2.x times out there, PLEASE NOTE: from now on you might need to specify the "--stdin" option when printing with kprinter from non-KDE applications. (This is necessitated by the new feature to start kprinter as a standalone application *without* specifying a printfile first, but selecting it only in the second step...)

    For a more detailed description see the kprinter section of this documentation.

    Add Printer Wizard

    The Add Printer Wizard is accessible from various places. You may even start your first printjob with no printer configured at all and then access the Wizard from the opened kprinter dialog. The Wizard steps you through the process of setting up printers. Those steps vary, depending on the print subsystem in use. But they are easier to go, as well as to revert, than under the rule of other Operating Systems.

    The Add Printer Wizard makes adding a printer very easy. You just need to answer a few simple questions and you are done. If you ever succeeded to install a network or local printer on a MS Windows-burdened computer, you'll find this one not more difficult -- chances are, you'll say "It's easier with KDE." Depending on your print subsystem, the Wizard guides you through different sets of steps, all leading to a fully installed printer in the end.

    Every step can be reversed at any time in the process, until you commit all setting by clicking on the "Finish" button on the final confirmation screen. On your wizard-guided way to your printer, you may try various printer drivers and settings (checking them out through some testprints). Only if you are satisfied with your output you need to choose the printer name: because you might want to reflect the finally selected driver in the actual printer name, this is the most convenient and logical way of doing the job.

    Scanning the LAN during printer installation

    Included in the Wizard is the ability to scan the network for available printers. It is a configurable item, which range of addresses you want to scan and which TCP/IP port you are looking for to connect for printing. You can scan for IPP-aware print devices (IPP = Internet Printing Protocol, the new standard for network printing that gives CUPS all its power, normally uses port 631). After discovery, you may retrieve the printer IPP attributes of every single device. You can make the attributes show up in a nicely formatted report on screen or for print. The Wizard also scans for Windows-attached printers that are shared via the Network Neighbourhood, and for printers using the AppSocket (a.k.a HP JetDirect) network printing protocol (default TCP/IP port here is:9100).

    For more details and screenshots about this see the Add Printer Wizard section.

    Printing Manager

    There are different ways to access the Printing Manager. In the KDE Control Center you find it in the "System" section. You can also start the command "kcmshell System/printmgr " from a root-konsole or -xterm. In konqueror's URL input field, or in a Mini-CLI (started through [ALT+F2]), just type " print:/Manager/".

    The Printing Manager is at the heart of KDEPrint. There you can setup, modify and delete printers, create and delete printer classes, start and stop outgoing print jobs, accept or reject incoming files, test printers, check printer- and job-IPP-reports, configure printer default settings (duplex?, stapling?, punching? default paper size A4? etc.), view and manipulate job queues, start and stop the printer daemon, configure the print subsystem, setup the Special Printers covering the printing-to-PostScript-file or mail-as-PDF-attachment, fax-through-kprintfax and much more. From there you can also start the Add Printer Wizard and the CUPS Configurator.

    There will soon be some more info about this important component of KDEPrint in the Print Manager section of this file.

    kjobviewer

    kjobviewer in reality is much more than its humble name suggest. Of course one can view jobs in the different queues waiting for print. But it can also manipulate jobs in many different ways. It has quickly evolved in the recent months to become more of a general Print Spool and Queue Management System than a mere "viewer".

    The details are, again, as with all other modules of KDEPrint, dependent on the print subsystem in use. CUPS, as is usual now, in this field is the most feature-complete system for "doing something with jobs that are sent away already and wait for print, possibly on a remote print server".

    With kjobviewer you can...

    Note, that some of these manipulations require job ownership or root access.

    Re-printing completed jobs

    kjobviewer can retrieve detailed information even about past and completed jobs. This requires to set CUPS to " PreserveJobHistory True". If you additionally set " PreserveJobFiles True", you can even re-print old jobs without sending them anew across the network!

    So kjobviewer is a great tool for users and admins as well as printshop operators and managers to run their daily tasks. It is on par with some very expensive commercial software applications that run in the Windows world of enterprise printing.

    CUPS Server Configurator

    In the past you had to edit the configuration file for the CUPS daemon "by hand". The newly designed "CUPS Server Configurator" provides you a friendly GUI interface for all the feature-rich settings of CUPS. It is completely covered by the "What's this?"-Quickhelp, offering useful tips for the first-time user. Nevertheless it is recommended to read the full CUPS documentation, always available at http://localhost:631/documentation.htmlif your CUPS-Daemon is up and running. Otherwise go to the CUPS.org Website to find out more.

    "Filter Command Editor" configures your own favorite filter

    The "Filter Command Editor" lets you configure any sensible external program as a pre-filter to KDEPrint -- but with a GUI instead of the usual commandline for such tools and utilities.

    Some examples (in fact, the most useful and commonly used ) for these are pre-configured in the KDE-3 release packages. Any other meaningful "filter" may be also set up to run with KDEPrint. A filter is a program that takes any type of file and works on it to produced from the given input a modified output that is better fit for further print-processing. This could be scaling the pages, converting file formats, selecting specific areas to print, or extracting printable info from otherwise non-printable files (like MP3-tags from *.mp3-files).

    The most popular preconfigured filters probably are "enscript" and the "pamphlet creator". More details about this component of KDEPrint may be found here.

    Ready-to-use filters shipping with KDE-3.0.x

    The enscript frontend provides a GUI for the well-known ASCII-to-PostScript filter. This filter's options are normally specified on the commandline. Enscript produces PostScript page description output from otherwise unformatted ASCII text input. It commands options to determine page size, portrait or landscape mode, page frames, pretty headers and footers, font sizes and much more. The enscript filter is pre-configured to be run commanded through a dialog which controls some of its basic features. The output of this filter can then be run through another filter (for example the pamphlet filter) or send to the print subsystem, accompanied by the general KDEPrint job options.

    The pamphlet filter enables a user to produce this advanced output even from simplex-only printers. It does so by re-arranging and imposing individual pages in a different order automatically, selecting odd and even pages to print in two separate passes through the simplex-only printer, flipping the paper in between the passes.. Another version of this filter can be used with a duplex-capable printer: here one just needs to select the duplex option that flips the page along its short edge and the pamphlets just need to be folded when the printer ejects them.

    "Selected" view on large printer list

    One important detail is the ability to "filter" the view on the list of available printers. As CUPS potentially could show 100s of printers to a user (given a large installation), this may be not desired or confusing people about which on to select. The new mechanism enables a user to assemble a list of visible printers individually, and an administrator to let only those printers show up, that match a regular expression in the "location" string of their description. Thus a workgroup can easily manager their few printers without bothering about the many more outside their realm, but still access them, if need be.

    KDEPrint directly working with CUPS API

    By accessing the CUPS API (Application Program Interface), KDEPrint is bringing to the light of graphical dialogs all the gems of CUPS, present in real life already for quite a while, but so far mostly living in the dark, hidden in obscure commandline options or seldom-read man pages.

    IPP and CUPS -- the future available in KDE today

    We hope this will be a valuable contribution to establish CUPS as a real-world de-facto standard for Linux and Unix printing, helping to reach a common printing API for different programs. It shall also propel the IPP standard of network printing on other OS platforms too, to create a more seamlessly working inter-operability for printing between various OS systems.


    by Kurt Pfeifle, <kpfeifle@danka.de>
    documentation of KDEPrint,
    Network Printing Consultant,
    Danka Deutschland GmbH

    (I-2.) kprinter --
    -- Your Versatile Print Dialog

    New capabilities for an approved interface

    One component every printer-owning KDE user will come in touch with is the kprinter dialog. It pops open most of the times he clicks on the "Print" button of any new KDE application. [ All long-standing kprinter-PowerUsers from KDE-2.2.x times, please note: you will need to modify your print command to include the "--stdin" option for printing from most non-KDE applications. See section on the "--stdin" option at the end of this file.]

    Heir of qtcups

    kprinter is already well known as a print dialog from KDE 2.2. It has been extended with a lot of new abilities. Also, some of the "old", but temporarily missing features of the popular qtcups utility have come back into kprinter. qtcups in a sense is the pre-decessor to kprinter. Now that qtcups is no longer maintained, Michael Goffioul, its programmer-creator, has made kprinter inherit everything what was good about qtcups and improved upon it at many places.

    kprinter is a very versatile tool. Depending on the actual features and power of the print subsystem of your computer, kprinter translates the former's abilities into a nice and easy-to-understand GUI. If your print subsystem doesn't support duplexing, kprinter will not show the option. If your print subsystem is CUPS, kprinter is at its peak shape. It will then be able to "ring every single bell and blow every whistle" of your printer (that is, if you did install the correct driver for it, which is easily done with the help of the Add Printer Wizard). You'll hardly be able to think of anything you'd like to add. (If you do, let us know -- the KDEPrint Team will consider your suggestion and maybe add any sensible feature ;-)

    kprinter used as a Printfile Downloader for various file types at the same time.
    Expanded kprinter, "tooltip" visible: 4 print files, 4 different MIME types
    from 4 different directories combined into 1 single IPP job.

    From this dialog you can...

    kprinter

    kprinter opens automatically when you click on the "Print" icon of any KDE application. Choose your print job settings by going through the dialog and the click on the "Print" button. As in the previous version of KDE, you can start it from the commandline, by issuing the command "kprinter".

    There is one important difference: previously you had to specify the printjob(s) at the start of kprinter. You had to hand the file(s) as commandline parameters, like in "kprinter /path/to/printjob". Of course you can still do this. But now you may also start kprinter on its own and choose the printfiles later. Just select the jobs from a standard KDE file selection dialog, accessible through a separate tab (labelled "Files") inside the dialog.

    Drag'n'Drop printing

    The mentioned "Files" tab also accepts any printjob via "drag'n'drop", f.e. taken from a Konqueror file manager window. Upon reception, the file is automatically "MIME-typed" to find out its format. This serves the purpose to feed the file, in the next step, into the correct "filter".

    Multiple file types at once

    kprinter's input tab doesn't accept just one file at a time. It also takes multiple files, from different directories and of various types at the same time. There is no problem to send an ASCII text, a PDF document, a PNG, TIFF, GIF or JPEG image and a PostScript file at once. KDEPrint will take care of everything else.

    Print File Downloader

    This way kprinter turns itself into a "Print File Downloader". A Print File Downloader is a program type that is used in the Windows world of commercial printing to send PostScript, PCL, PDF and TIFF directly to the printer (which must understand to handle those formats).

    kprinter can send those same filetypes away for printing -- and many other types of files too! -- and it can also send it to printers that don't understand the input types (because it takes care of the right file type conversions too). Moreover, unlike its counterparts from this other world of computer usage, it doesn't cost you a dime in licenses....

    Manual setting of filters

    Should the file not fit into the print subsystem's (CUPS, LPRng, RLPR etc.) list of acceptable input files, KDEPrint will try to automatically find an appropriate filter. If this fails, the user is prompted to select a filter manually, or cancel the printing. (After all, even with KDEPrint you still can't print DVD videos... ;-)     [OK, this one is not yet fully functional. Michael Goffioul is still working on the part which allows the manual specification of an alternate filter... ;-) ]

    Advanced Printing options

    The "Advanced Options" tab on the expanded mode of kprinter provides a few setting which are very important for enterprise level printing, were centralized reproduction departments receive jobs in "held" state only, to release them manually, when the target printer is ready for it (it might need special paper loaded).

    kprinter: advance options provide enterprise level printing features
    "Advanced Options" tab of kprinter gives access to Enterprise Level printing features: labeling pages, attaching job billing information, scheduled printing, job priority setting, and much more.

    Printing at a scheduled time, or tagging the job with some billing or accounting information (here "Sylvia") is often equally important. Raising the job-priority to a higher level will queue the job before all others, lowering it to "1" will print it only after all others are done.

    Persistently opened dialog

    kprinter, when started from the commandline, now also supplies the handy little option to "Keep this dialog open after printing". Thus it remains ready to print the next files. Or re-print the same file, but now (after eye-checking the 1-copy proof done during the first round) with different quality settings. Or print the real "production" circulation of 100 or 1000 copies, if the first attempt (serving as a proof) was satisfying your critical eyes....

    CUPS printer "instances"

    With CUPS you can easily create multiple instances of a printer. An instance represents a pre-set selection of printoptions for the printer. It allows the "One-Click-Only" selection of complicated print option profiles, which are permanently stored behind the name of the instance. kprinter can show the instances for any printer in a "tree" view of its drop-down list.

    kprinter: printer or instance selection, local (driver needed) or remotely served (no driver needed) target printer
    Printer "Danka_LaserJet_8100" has various "instances":
    "One-Click-Selection" for complicated job options
    (should we try and get a Software Patent for this invention? ;-)

    Target Printer Selection -- no driver needed for remote servers

    If your computer is connected to a LAN you might be pleasantly surprised to see automagically appear all printers of your workgroup (and probably many more) in the drop-down menu of kprinter -- with you never-ever having installed a single printer on your computer! There might even appear some differently named "instances" of the same printer.

    The explanation is: somebody else, probably your smart network administrator, has installed CUPS and is running it in "server mode". This mode broadcasts in certain time intervals all available printers to the LAN. CUPS clients pick these infos up and store them temporarily in a cache for future usage. kprinter uses the info to show the list of available printers. Should you ever print to one of them, kprinter will swiftly retrieve a current set of available print options for that target printer from the CUPS server. These options are presented on the "Properties... --> Driver Settings " tab for user selection and sent as "driver" parameters, along with the actual printfile, to the server. The "driver", i.e. the printfile conversion filters, will be used on the server side to process the job.

    Thus kprinter is able to print without any local driver or printer installed...

    Wouldn't you call this true "Plug'n'Play Printing"?

    "Special" Printers

    KDEPrint will always show at least four "Special Printers" in the drop-down menu. [NOTE: you can always use the "Filters" as available through "Properties... --> Filters" with these special printers too].

    kprinter: special printers are     always there; they don't need installation
    Four useful "Special Printers" shipping with KDE 3.0.
    It is easy to create more of your own.

    The PDF "special printer" is well configurable, providing options on a "Driver Settings" tab (it uses the PPD trick ;-) for resolution and downsampling color and grayscale images with different methods.

    Printfile Preview

    You can activate to print your job to a "Preview" window by ticking the checkbox of kprinter (not available when starting kprinter from the command line). The printfile (which is in PostScript format at this stage) is then shown by kghostview, after it has been processed by all the pre-filters you might have specified in the " Properties... --> Filter" tab (seen below).

    kprinter: preview-checkbox
    kprinter, "collapsed" view, "Preview" checkbox enabled.
    (Checkbox currently only available when printing from KDE applications).

    Limitation: the "Preview" option is only available from KDE applications. It needs PostScript as an input file. For a preview in not-KDE applications, print to a file (PostScript- or PDF Special Printer) and preview the saved file.-- NOTE: You can change the preview program to another one (like f.e. gv) by clicking on "System Options..." and then on "Preview".

    Printjob properties

    Click on the "Properties..." button to see the available print options for the present job and printer AND for the presently selected print subsystem. With CUPS, you will see a dialog with six tabs:

    Printjob driver settings are smart enough to warn you with a red alarmist color, in case you select options that are not allowed in this combination. In the case of the above screenshot, you can't draw A3 paper from the selected media source Tray 2. Selecting the another tray resolves the conflict.

    "Properties... --> Driver Settings"

    The "Driver Settings" tab is specific to each printer. Some print-subsystems, however, are not able to show up any settings of their own. For them, you'll only get the KDEPrint-Pre-"Filters" tab.

    kprinter:properties --> driversettings with RED ALERT for a inconsistent setting of joboptions
    Driver Settings tab provides printer specific job options. Red color highlights
    contradictory user selection. (Here specified "A3" paper is not loaded into selected "Tray 2").

    Essentially, the options on the "Driver Settings" tab are extracted from the target printer's "PPD"-file (PostScript Printer Description). [NOTE: this tab will not be present with a CUPS "raw printer" selected. A Raw Printer is one with no PPD associated. It serves the purpose to spool remote or local jobs unchanged/unfiltered, such as jobs from Windows clients using their own platform-specific vendor driver.]

    Collapsed and expanded views

    You don't need to see the many options at all times? Just "Collapse" the dialog by clicking on the button in the lower left corner. Next time, and in future, kprinter will appear in a "reduced" version. Should you ever need to access its advanced features again, just click the "Expand" button any time.

    Limiting the number of visible printers

    Are you working in an environment where you tend to "see" way too many CUPS printers in the drop-down list, automatically announced by several remote servers? Choosing a printer is always a pain? Then the "filtered" view is made for you. Select once those printers, which you always want to see. Then never be bothered again by the devices in the other floors or the next building at your workplace.

    KDEPprint: configuration of filter settings for list of visible printers
    To limit amount of visible printers, use this dialog to choose relevant ones only.

    kprinter: unfiltered view of printer list kprinter: filtered view of printer list
    Left: unfiltered view on all available printers. (Having to select amongst 36 automatically detected printers can be confusing to users.
    Right: button (with "funnel" icon) pressed, filtered view shows only 2 personal printers.

    Enable filtered view: click on button with "funnel" icon. Disable filtered view: click button again. If you have not configured "filtered view", you will get an "empty" list (i.e. no printer other than "Special Printers" will be visible). To setup "filtered view" (list of desired printers), select "System Options... --> Filter". Select printers you want to see from complete list on the left and move them to the right.-- NOTE: you can also use a regular expression to show all printers with a matching entry in their "Location" description. This can be used by smart administrators to prepare the easy filtering of only the "own" printers of every workgroup by putting the appropriate string into the Location description for all printers.

    Accessing the Add Printer Wizard

    Did you start kprinter prematurely? You was so keen to explore its features that you did start the kprinter dialog without having installed a printer beforehand? Never mind -- you can start the "Add Printer Wizard" from the kprinter dialog itself. (The wizard button is right besides the "funnel" filter icon.) No need to postpone or give up your already selected printfiles. After finishing the steps (the Wizard guides you through), the files are still there and can safely be sent to the newly installed printer.

    Switching between print subsystems "on the fly"

    Are you a power user, having two or more different print subsystems configured on your printer? kprinter does a good job to recognize automatically the active print subsystem. But it also lets you dynamically switch from one to the other. Linux Mandrake users have it prepared for them by their distribution -- they can comfortably alternate in between jobs from CUPS to LPRng and back again if they like and if they did choose to install both systems at the same time. (Other distributions will expect their users to choose one of the two for installation and configuration.)

    kprinter:selection of print subsystem is easy
    Switch print subsystem "on-the-fly" in between jobs.

    Using kprinter inside KDE applications: customized kprinter dialogs

    kprinter is automatically used by most KDE applications when clicking the "Print" button or icon or selecting the "File --> Print" menu item. It is so much a standard component for KDE, that most application programmers don't need to think about printing at all. They only need to use a call to kprinter in their code -- and this is all!

    kprinter: customized printoptions in kron    kprinter; customized printoptions in konqueror
    Some KDE applications insert "customized tab" into kprinter dialog. Left: kcron special print options. Right: konqueror browser special print options.

    However, KDE application programmers have a further option. They are given the possibility to extend the standard kprinter dialog options by their own customization, if they want. Konqueror , for example, has an extra tab for HTML-print settings (allowing to prevent the printout of background colors and images). Kcron also uses this mechanism to provide the possibility (to root only) to print the whole lot of the kcron jobs (instead of the default settings, which allows to only print the user's own kcron jobs).

    Using kprinter for non-KDE applications

    So you start to like kprinter so much that you want to use it in non-KDE applications too? To setup kprinter as your favorite print command for any third party program, just find out if and where you can change its pre-configured "print command". The power of KDEPrint is not limited for use within KDE only.

    The external program must just allow for a configurable print command. StarOffice, OpenOffice, WordPerfect 2000, Netscape, Mozilla, Galeon , Acrobat Reader, gv and all GNOME applications are known to work with kprinter. There is some detailed advice to be found in the KDEPrint FAQ.

    kprinter: print command for non-KDE-applications
    kprinter is a perfect tool for non-KDE-applications too. Here it is configured to work for StarOffice.

    However, there is one important change to be made in most cases, compared to its usage in KDE 2.2.x: instead of the sole "kprinter" command, with KDEPrint-3.0 in most cases you need to use the "--stdin" parameter. This had to be changed, to be able to differentiate if the printfile is taken from stdin or if it is selected only at the second stage (i.e. after kprinter has been started from the commandline, using drag'n'drop or the standard file selection dialog).

    Quick-Print option

    You don't want to have the kprinter dialog pop up for every printjob you are starting ? You have done the job settings for your printer once and for all and saved them? Then the "--nodialog "-option is what you're looking for.

    If you set f.e. the Netscape print command to " kprinter -P danka_infotec_IS2027 --stdin --nodialog", this browser will happily send quietly its printfiles to the printer danka_infotec_IS2027. It will happen in the background, with no dialog popping up, using the default printer settings. Default settings are those, which once were pre-configured or saved by you, while the dialog was open. There will only appear a dialog (containing a warning or an error message), if something goes wrong.

    If you want the error messages to appear on the konsole or xterm you used to start kprinter from, use "-j console". The full command is "kprinter -P danka_infotec_IS2027 -j console --nodialog". If you want even to suppress the console error messages, use the "-j none" switch.

    "kprinter --help" will show all commandline options for kprinter in a condensed form.

    Directly accessing remote CUPS servers

    Do you want to print to a CUPS server that is not "broadcasting" its printers? kprinter is able to connect to and query directly any remote (or local) CUPS daemon. For this it uses a direct call to the CUPS API (Application Programming Interface).

    Just click on "System Options", and choose the icon "CUPS server" on the next dialog. Fill in IP address or server name and for authentication the account information (often it will be "root" and the appropriate password). Once you're authenticated, you'll get access to the remote server's printers. The printers will automatically show up in the drop-down list of kprinter.

    kprinter: accessing a remote server directly
    Log into remote CUPS server for printing (f.e in case CUPS browsing is not enabled): click "System Options..., select "CUPS server"...

    You'll then be able to print to all of them without installing a single driver for a 'unknown' remote printer locally! -- You don't believe this? Then we can't help but advice you to set up not just one, but at least two KDE/CUPS computers in your environment and find out yourself ;-)

    This feature is also extremely useful to reach a server behind a router or gateway, whose printer information broadcasts are not able to cross the boundary between two LANs. (Of course this will only work if you selected CUPS as your printing system in kprinter in the first place...)

    "Driverless" printing to remote CUPS server -- Plug'n'Play printing

    CUPS and kprinter work together seamlessly to exchange all informations about available job options with no further user action. Click on the "Properties" button to get displayed all possible driver settings of the printer. They can be found on the " Driver Settings" tab. (The other tabs provide general print options, not dependent on the target printer.)

    Checking connection to server

    To see which CUPS server kprinter is momentarily connected to (default is localhost), click the "System Options..." button and go to the CUPS server item. (As this is still a bit too uncomfortable and long-winded, an improvement is being developed to make the current connection always visible at a prominent place, like the window title bar or similar.)

    Communication protocols

    Communication between CUPS server and CUPS client is always defaulting to IPP. A CUPS client sending a job to a printer on a CUPS server, which was "discovered" automagically, will do so using the Internet printing protocol. The server then passes the job to the actual output device using an appropriate "backend" -- one of the USB-, serial, parallel, or networking protocols. Amongst the supported networking protocols to speak to printers are: IPP (of course), LPR/LPD, AppSocket (a.k.a. "HP JetDirect") and SMB/CIFS (a.k.a. "Samba")

    Local CUPS printers

    Locally defined printers need of course to be "installed" on the local computers prior to printing. These printers may be attached to the computer via USB, serial, parallel or a network connection (in this other sense being "remote" printers then). Network connection can be over IPP, LPR/LPD, AppSocket (a.k.a. "HP JetDirect") and SMB/CIFS (a.k.a. "Samba").

    A local computer, having defined and installed all printers itself, is "its own server". It needs to have the server and the client components of CUPS installed. (Some Linux distributions rip the original CUPS software apart and spread it over several packages).

    Providing a GUI frontend to CUPS

    By providing a complete GUI frontend to CUPS, KDEPrint is bringing to the light of graphical dialogs all the gems of this still-underestimated printing system These features have been present inside CUPS already for quite a while. But many useful controls and commands were so far mostly hidden in obscure commandline options or seldom-read man pages.

    IPP and CUPS -- a network printing standard and its best implementation

    The KDEPrint team is proud to present to the world its new printing system. It is firmly basing itself on the new IETF-declared standard network printing protocol, the IPP (Internet Printing Protocol), by using CUPS, its most mature implementation. At the same time we provide enough backward compatibility to support legacy printing systems. Its modular design will also support future print system developments, should they happen. We hope to promote this way both CUPS and the IPP....


    by Kurt Pfeifle, <kpfeifle@danka.de>
    documentation of KDEPrint,
    Network Printing Consultant,
    Danka Deutschland GmbH

    (I-3.) kjobviewer --
    -- Evolving Into A Powerful Queue & Spool Manager

    First insight into its manifold capabilities

    There are different ways to access the list of pending jobs. The command "kjobviewer -d danka_infotec_IS2027" f.e opens a first window, showing the jobs for the named printer only. From there, you can go everywhere. You can switch to a view to see all queued jobs of all printers in a single list, or you can select the jobs of any other printer. Checkout the button showing a printer icon to navigate through the different queues. "kjobviewer -a" starts the window in the "all jobs for all printers"-mode, " kjobviewer --help" shows all available options. Once open, all icons show "tooltips", if you park the mouse for a short moment over it.

    kjobviewer -- not just for viewing!

    kjobviewer in reality is much more than its humble name suggest. Of course one can view jobs in the different queues waiting for print. But it can also manipulate jobs in many different ways. It has quickly evolved in the recent months to become more of a general Print Spool and Queue Management System than a mere "viewer".

    Summary

    kjobviewer works with all supported spoolers or print subsystems. The kjobviewer feature details are, again, you guessed it, dependent on the print subsystem in use. Like with other modules, not all spoolers provide the same amount of information about jobs, or the same level of user of administrator interaction. CUPS in this field too is the most feature-complete system for "doing something with jobs that are sent away already and wait for print, possibly on a remote print server".

    kjobviewer: more than a mere 'viewer' -- a complete print queue management system, ready for enterprise network printing....
    kjobviewer: pending jobs for all printers (job billing info in right column)

    With kjobviewer you can...

    Note, that some of these manipulations require job ownership or root access.

    kjobviewer with list of completed jobs, sorted according to no. of pages
    kjobviewer showing completed jobs, sorted by job size (no. of pages).

    Pending and completed jobs

    kjobviewer can retrieve detailed information even about past and completed jobs. This requires to set CUPS to " PreserveJobHistory True". If you additionally set " PreserveJobFiles True", you can even re-print old jobs without sending them anew across the network!

    So kjobviewer is a great tool for users and admins as well as printshop operators and managers to run their daily tasks. It is on par with some very expensive commercial software applications that run in the Windows world of enterprise printing.

    Automatic start

    kjobviewer is automatically started if you print a job. It remains in the background, only visible as a small printer icon in kicker. Click on the icon to open a window with a list of jobs.

    kjobviewer: started from mini-CLI
    kjobviewer starting from "minicli" applet.

    Manual start

    To start kjobviewer manually, type its name into a terminal window (like konsole) or into the "Mini-CLI" that opens upon [ALT]+[F2]. You need to give a parameter to the command:

    Once started, the view can always be extended to all printers or limited to one specific by using the printer icon with the little arrow in the toolbar.

    Embedded view

    If you have the KDEPrint Printing Manager opened (with the viewing option to "Show Printer Details" activated), selecting a printer and opening the tab called "Jobs" gives you the kjobviewer window as an embedded part of the KDE Printing Manager. It is then restricted to the view of the highlighted printer.

    Sorted view

    You can use all visible column headers to sort the order of the visible jobs. Clicking on "Owner" groups together all jobs belonging to the same owner, clicking on Job-ID sorts in the order of the numerical job id (while a second click will just reverse this order). This is very useful if you are searching for a particular job in a long list.

    NOTE: the order of processing for the jobs is always according to the "job-priority"-value, and, if this is equal for multiple jobs, the order of the "Job-ID".

    Benefits of kjobviewer

    kjobviewer is not only good for screening the queued up jobs. You can also "manipulate" the order of the jobs, put them on hold, re-start them, cancel them completely, move jobs to a different destination and do various other things. However, not all sorts of manipulations are possible for all print subsystems.

    kjobviewer usage with CUPS

    kjobviewer provides the most feature-rich presentation of your joblists if it deals with CUPS printjobs.

    If you are using a different print subsystem, and miss some of the features presented here, this is most likely because this feature is not present in that print subsystem at all. In some cases, kjobviewer might not yet have it implemented at the present time and possibly supports it at a later stage.

    Network wide usage

    You can use kjobviewer to access printers on any remote CUPS server to query for jobs. Of course, this is subordinate to your granted access rights for this server's resources... If used in the "embedded" form in the Printer Manager, you can even edit remote jobs queued on a remote server, after you logged into this server using the "System Options" button.

    kjobviewer: moving a job to a different printer
    pending jobs in kjobviewer: moving highlighted job to different printer.

    Moving a job to a different printer

    You can move any queued job to a different printer. Highlight the job in question and rightclick: you will see a context-menu of allowed actions. One is the entry "Move to Printer..."

    NOTE: You need to have sufficient access rights to conduct the action (like owning the job, being allowed to use the new printer, not having overdone with possible job-quotas set on the new printer, etc.).

    Restarting completed jobs

    CUPS supports the restart of completed jobs on printers that are defined on the *local* host. However, this requires the enabling of the "PreserveJobHistory On" *plus* the " PreserveJobFiles On" directive in the CUPS configuration, otherwise it will not work. (You will see a "Requested Operation could not be completed" error message). Also, it is a feature unique to CUPS and not supported by other print subsystems.

    Editing of job attributes

    Depending on access rights, with CUPS you can edit job attributes of a pending job. Right-click on a pending job (not in the state of "processing") and select "Edit Attributes". All options are accessible, just like if you send the job initially.

    Basic view of kjobviewer

    Taskbar icons in kjobviewer are "active", if the related action is possible -- otherwise they are "grayed out". The icons are associated with "tooltips". Tooltips explain what the icons mean (if you can't guess it). A tooltip appears, if you "park" the mouse over an icon for a short moment.

    kjobviewer icon bar
    All icons from kjobviewer toolbar.

    The icons are, from left to right:

    If a particular action is not possible or not allowed, the icon is "grayed out". For job-specific actions you need to have the job highlighted first, before the icons become active.

    Different Views

    You can list the jobs for different specific printers in separate windows. You can also have all jobs of all printers in one window. (You can not yet create a joint view of the jobs from a few selected printers in one window; this feature might appear in a future release).

    Tables

    All views of job lists are presented as a table with different headings.

    Possible headings are:

    Sorting Jobs

    As you might expect, you can sort those lists according to your needs. Long lists might have hundreds of jobs enumerated from dozens of different users. Imagine you want to see all queued jobs by one Michael Goffioul. Clicking on the column heading "Owner" will aggregate all jobs associated with the same job owners together. So Michael's jobs are easily identifiable. Now you can easily select one of them to give it a higher priority, cancel it or whatever action is wanted. -- Jobs could also be sorted according to their size in kBytes or their amount of pages (completed jobs only).

    Job IPP Report

    The job IPP report gives an overview on the IPP attributes that have been assigned to the selected job. You can also print this report for further reference. The IPP report may be useful for troubleshooting and accounting purposes. Imagine you want to know when exactly the job was sent to printing, when it was called from the queue for processing, and when it was finished. Look for the attributes "time-at-creation", "time-at-processing" and "time-at-completion". These are the new official names as defined in the new IPP standard protocol for the purpose of logging the timings of printjobs.

    Many other jobsettings can be extracted by KDEPrint from the Job-IPP-report. [NOTE: Job-IPP-reports are only available when using CUPS.]

    Job-IPP-report with page selection info
    Job IPP Report: IPP attribute on "page-selection" is highlighted.

    Job-IPP-report with billing info
    Job IPP Report: IPP-attributes on "job-billing" and "job-hold-until" highlighted.

    Edit Job Attributes

    The "Edit Job Attributes" dialog lets you change a job's print settings. Imagine you sent this one long printjob to printing, when you discover, that you had set it to simplex, but had meant to print it duplex. This dialog is for you! Use it to change your print settings without going back to your original document (which you'd need to send a second time over the network, while deleting the first shot.)

    Also, after moving the job from one print queue to another, there is the need to at least check-control, but often also adapt the print settings to your new target device.

    In some cases you will want to re-schedule a printjob for later printing (like when you have checked that the right paper is loaded, or for the late office hours, when you are pretty sure that there won't be someone else, claiming more karma than you, to get print priority over your running job...)

    kjobviewer: Changing job attributes for a job already queues on a remote server
    Right-click job and select "Edit Attributes" to change job settings "a posteriori" while it waits on server for print.

    Job Billing Information

    Every CUPS (or, more general, IPP) printjob has a " job-billing" information tagged to it. This would often be just an "empty string". But you can use it to connect a billing account to every (or some) printjobs sent. The next version of KDEPrint will probably include a module that provides nicely formated reports and statistics from the CUPS page_log. At present, you need to use other tools for this.

    Manage centralized printing for large organizations

    Imagine a professional printing department in some large organization (as you often see in government bodies or large companies). They have many users printing to a central reproduction department, where digital monster network printers are running all day. In there, one or more operators handle the incoming jobs, assign target printers to them, load papertrays, unload output trays, deliver the finished products and do some amount of book-keeping. The job-billing option is visible in kjobviewer, and may even be edited by an administrator after the job is queued. It later will also appear in the CUPS page_log file (normally in the /var/log/cups/ -directory), that counts every single page that is processed by the " pstops" filter.


    (I-4.) "Filter Command Editor" --
    -- Getting To Grips With enscript & Co.

    Initial introduction and hints about its usage

    A very versatile component of KDEPrint is its new Filter Command Editor. Experienced power-users or curious and daring newbies can setup any external print-file filters for convenient use through a kprinter dialog. To provide you a kickstart for use, KDEPrint ships with a sample of the most important filters.

    These filters work as "pre-filters", doing their job on the printfiles before they are handed to the real print-subsystem by KDEPrint. Pre-filters currently shipping with KDEPrint are listed in the table below.

    What its name is:What it is good for: What it requires:
    "Enscript text filter"convert text input into PostScript outputenscript
    "Gen. image to PS filter"converting graphic file input into PostScript outputimagetops
    "Pamphlet printing filters" (various)arrange PostScript input pages to layout resulting in pamphlet/booklet when folding (different for printers with/without duplexer)psnup, psselect and psbook
    "PDF writer"convert PostScript input into PDF outputghostscript/gs
    "Multi-pages/sheet filter"arrange various logical pages onto one sheet of paperpsnup
    "Page select/order filter"allow selective prints of even/odd/deliberate page rangespsselect


    If you come up with other useful filters, or if you extend the basic features of our shipped configurations -- tell us, we are glad to include your good ideas into the KDEPrint filters! [See also at the end of this chapter for some ideas or contributions sent to us from users.]

    Working for all print-subsystems

    The KDE-shipped or your self-styled filter configurations work with all of the supported print subsystems -- regardless wether you use CUPS, RLPR, LPRng or standard LPD. Every one of the filters may be hooked to a certain or to several individual printers (or in the case of CUPS, to printer instance). The configurations may be saved for future automatic usage, or changed at any time. With CUPS, you can also create "instances" of a printer, which have a certain filter permanently attached to it. This way you have a far more convenient usage, as you just need to pick the instance and have everything set already..

    NOTE: KDE does not ship the filters themselves, which are configures through the Filter Command Editor. It rather expects them to be present on your system. It offers a GUI configuration frontend for them.

    Purpose of filters

    Any meaningful "filter" may be initially set up through the Filter Command Editor. After setup, the filter can easily be called from kprinter to run with any printjob.

    A print-filter is a program that takes any type of file and works on it to produced from the given input a modified output that is better fit (or preferred by you) for further print-processing. This could consist of scaling the pages, converting file formats, selecting specific areas to print, or extracting printable info from otherwise non-printable files (like MP3-tags from *.mp3-files). All what is needed is any input file format with an output that is feasible to print.

    These filters are used at the first stage of KDEPrint job processing. Therefore we also call them "pre-filters".

    Filter Command Editor: configuring enscript filter   Filter Command Editor resulting enscriptfilter
    Left: Filter Command Editor in action, working on "enscript" pre-filter. Right: enscript pre-filter view to user -- easy option selection.

    GUI frontend to commandline filters

    In the case of the filter's actual presence in your system (its initiating command must be in your $PATH), KDE's pre-configuration leads to a convenient access of the most important filter options (if available) through a dialog. KDEPrint can plugin any of those filters into its first stage of printfile processing.

    This construction allows you to easily integrate every single third-party-filter -- past, present of future -- into KDEPrint's framework. Imagine a filter appears somewhere in the Internet, which automatically converts MS Word files into a clean PostScript print file (yes, there are projects on the way to get there!): this could be used to print, through kprinter and its pre-filter mechanism, this sort of files without a need to open them in an application first...

    If you use CUPS, you may be familiar with the concept of "instances". (Instances of a given printer are a fixed set of printoptions --- like "duplex, A4, use business letter paper from tray 3" --- that may be assigned to any queue, allowing a quick access to frequently use options, saving the time to click through different menus). Various pre-filter can easily be assigned to various printer instances.

    How to use pre-filtering in KDEPrint

    To call a pre-configured filter from kprinter (the KDEPrint printing dialog), just click on the "Properties..." button and select the "Filter" tab. An "empty" tab means, that there is no filter active. To activate a filter click on the top "funnel" icon. Now you can select one of "Enscript", " Pamphlet", "Image to PostScript Converter", "Page Selection/Ordering", "PDF Writer" or "Multiple Pages per Sheet". Should you construct and save any of your own filters with the help of the Filter Command Editor, it will automatically appear in the list.

    XML file holding the settings

    Under the hood of the Filter Command Editor lies an XML file which is written from the configuration dialog. It holds the filter settings in a "tagged" data structure, which in turn serves to create the user interface for the control of the filter when called via the "kprinter" --> "Properties..." --> "Filter" dialog.

    The active configuration for the enscript filter may be found on your system at $KDEDIR/share/apps/kdeprint/filters/enscript.xml. All other filter configurations are held in the same directory, in $KDEDIR/share/apps/kdeprint/filters/. Look at them to find out more about how they work. [There might be some other files in your $HOME/.kde3/share/apps/kdeprint/filters/ -- these are your personal copies, made when you edited the original ones; settings contained there override the system wide files].

    Improving on the shipped examples

    The shipped enscript filter configuration (as most others) is limited to some of the most basic options:

    But enscript is capable to do a lot more than what is configured at present with the KDEPrint Filter Command Editor. The KDEPrint Team has limited itself to the most important options. Look in the man page of enscript to see what more it supports from the command line:

    All these commandline options can be translated into a GUI representation. Be creative! -- We are encouraging you to send in a more complete enscript.xml file for future enclosure in KDE distributions.

    Create and configure your own favorite filter

    The "Filter Command Editor" principally works with any sensible external program. This program must be working from a command line and able to serve as a pre-filter to KDEPrint. Then the Filter Command Editor builds a GUI around it which can be plugged into KDEPrint. The usual commandline mode for such tools and utilities, with their various options, could normally only be used separately from KDEPrint, With the help of the Filter Command Editor they can now integrate nice and seamlessly into KDEPrint!

    The Filter Command Editor allows you to modify or extend the shipped versions of KDEPrint filters on a per-user basis. Every user can construct his own filters, or have his own settings for the system-wide installed ones, without bothering other users.

    commandeditor: creating a complete bogus magic filter...   kprinter: showing kurts magic filter as 'special printer'
    (I should really show how to configure something useful, shouldn't I? No-one will send me any money because of this hint, give-it-up!).

    Moulding a "Filter Command" into a "Special Printer"

    A command build with the help of the Filter Command Editor can be made to appear amongst the "Special Printers" in the kprinter drop-down list of available devices too.

    For this to happen, go to the Print Manager (f.e. via "print:/manager/" as a konqueror URL), click on the "Add special (pseudo) printer" icon (the second from the left in the menu bar), tick the checkbox "Use command" and proceed to add your new command or select an existing filter from the drop-down list. Don't forget to fill in name, description and location fields.

    Ready-to-use filters shipping with KDE-3.0

    Some fully working example filters (in fact, the most useful and commonly used) are shipping in the KDE-3 release packages.

    The enscript frontend provides a GUI for the well-known ASCII-to-PostScript filter. This filter's options are normally specified on the commandline. Enscript produces PostScript page description output from otherwise unformatted ASCII text input. It commands options to determine page size, portrait or landscape mode, page frames, pretty headers and footers, font sizes and much more. The enscript filter is pre-configured to be run commanded through a dialog which controls some of its basic features. The output of this filter can then be run through another filter (for example the pamphlet filter) or send to the print subsystem, accompanied by the general KDEPrint job options.

    The pamphlet filter enables a user to produce such advanced output even from simplex-only printers. It does so by re-arranging and imposing individual pages in a different order automatically, selecting odd and even pages to print in two separate passes through the simplex-only printer, flipping the paper in between the passes.. Another version of this filter can be used with a duplex-capable printer: here one just needs to select the duplex option that flips the page along its short edge and the pamphlets just need to be folded when the printer ejects them. The pamphlet filter relies on and combines the functions of "psbook" and "psnup" for its purpose. Most users will find the usage of these two utilities on the commandline too difficult. Using them through the KDEPrint "pamphlet filter" interface is a snap...

    How to use it

    Configured filters (the ones you create yourself as well as the pre-built ones shipping with KDE-3.0.x) are accessible when printing with kprinter. Click on "Properties...", then on the "Filter" tab, and select a filter by clicking on the " funnel" icon. Some filters show a GUI to setup their options. Do so by first highlighting them and then clicking on the "hammer and wrench" icon at the bottom. -- Other items shown are:

    Filter chains

    Filters may be concatenated. The only condition is, that the output MIME-type of any filter will satisfy the input MIME-type requirements of the next filter in the chain. You can construct a filter chain "enscript --> pamphlet" which produces a pamphlet printout from any input text. It works because enscript takes text and produces a straight series of PostScript pages, which are taken by the pamphlet filter to impose and scale those pages to make up the final product (PostScript) that can be printed by any duplex-capable device.

    You can even construct a chain "enscript --> page selection --> pamphlet". This chain allows you to print from a long ASCII or International text document only selected pages, but layed out as a pamphlet.

    "Abusing" the KDEPrint Command Editor with surprising ideas

    One KDE user, Paul Evans pevans@catholic.org, has started to build a few innovative and rather surprising applications around the Command Editor. The table lists his ideas and setups:

    What he named it:What it is good for: What it requires:
    "No-name_email"print emails without revealing names of recipientsbash (the shell)
    "ReadByViaVoice"Read mail by "ViaVoice" special printer (setup actually used by friend of Paul suffering from dislexia, but can easily listen ViaVoice sound output) ViaVoice (from IBM) and soundcard/speakers
    "PrintToWallpaperconvert KOrganizer output to bitmap dates on desktoppstoimg
    "PrintToTranslator"Not yet done, but neat: esp. if you pipe output to ViaVoice...babelfish or similar
    "PrintToVector"create an editable vector file (say, for Xfig)pstoedit

    Maybe those suggestions will give you some idea about the flexibility of KDEPrint's inner architecture. Maybe they spark your own creativity now. If you have something to show us, tell so. We'll be happy to put your invention on our website.

     


    About the Author:

    Kurt Pfeifle works in Stuttgart as a System Specialist for Danka Deutschland GmbH, one of the largest manufacturer-independent providers for sales and service of system solutions in the digital printing market, integrating hardware as well as software components, covering heterogeneous network environments. He may be contacted via kpfeifle.at.danka.de.


    Links:

    http://www.danka.de/printpro/faq.html
    CUPS-FAQ by Kurt Pfeifle, more than 150 Questions (and presently a bit less Answers ;-)
    http://www.pwg.org/ipp/
    First hand infos about Internet Printing Protocol
    http://www.cups.org/software.html
    CUPS download
    http://www.cups.org/documentation.html
    First hand infos about CUPS
    http://www.easysw.com/software.html
    ESP PrintPro download
    http://www.easysw.com/documentation.html
    First hand infos about ESP PrintPro
    http://www.linuxprinting.org/
    Grant Taylor and Till Kamppeter: Linux Printing HOWTO, Linux Printing Database, PPD-O-Matic and PDQ-O-Matic and much more
    http://www.pwg.org/ipp/IPP-Products.html
    List of IPP-aware products at the Printer Working Group website

    Annotation: this paper is a re-worked and extended version of articles appearing on http://printing.kde.org/. It will eventually become the new KDEPrint Handbook

    Kurt Pfeifle