Linux printing

The Common UNIX Printing System (“CUPS”) is a portable printing system for UNIX-Systems. It is developed by Easy Software Products. It is going to replace the old Line printer daemon (“LPD”) and to become the new standard printing system on Linux/UNIX. CUPS is based on IPP (Internet Printing Protocol), an extension of the Hyper Text Transfer Protocol (HTTP), and gives you the opportunity of the full control over every printer in your network. IPP is designed to provide remote printing services and is very close to become the standard network printing system on all operating systems. Also, Windows 2000 is going to support IPP as network printing protocol.
Besides IPP, smb, socket, serial, parallel and USB (Universal Serial Bus), CUPS also supports the old LPD/LPR system, wherefore you can use the LPR/LPD command set to work with your printers, if you have to. CUPS is designed to be compatible with it but some tools like Berkeleys lpc can be used for system control only.  The CUPS software can be used either as server (in most cases) or as client, so there is no need to have different software for each purpose.
CUPS is designed to use PPD files (PostScript Printer Description) to make printers work with UNIX. The server generates its own driver for each printer from a given PPD file to make it available in your network. No additional driver for your clients is needed. In most cases, PPD files designed for Windows NT will work fine without any changes. CUPS is provided under the GNU GPL (General Public License) and the CUPS API’s (Application Programming Interface) are provided under the GNU LGPL, so it may be used in commercial applications.