LPRng - An Enhanced Printer Spooler
LPRng is the "New Generation" of the LPR client program for the BSD LPD protocol.
The "classic" lpr client passed off most of the responsibility for processing to the LPD daemon. This is problematic if the host to which data is to go is on a remote host that has no "data filtering" capabilities.
Moreover, it required that configuration information be managed on the local host in /etc/printcap. If the printer is on a remote host, then there's no real value in managing information locally; that just increases the amount of system administration work required to manage printers.
LPRng allows the local client to manage filtering (if needed), and directs data directly to the remote host.
It apparently has other "neat functionality" too; I haven't had need for it thus far.
Excite search for +linux +magicfilter
Automagically translates lots of document formats into something handlable by a particular printer. Comes with configuration for many document formats, and quite a lot of printers.
Excite search for +linux +apsfilter
Automagically translate many document formats into particular printer formats, much like Magicfilter.
Possible source of public printing protocol standards
The Foomatic project provides filter scripts to help use the available free software printer drivers with the common print spoolers on Unix. This includes traditional LPD, CUPS, LPRng, as well as some others.
I'm not convinced that Foomatic is necessarily the best name, but it is apparently already proving useful as the "print management scheme" for the Mandriva Linux distribution.
Tutorial material based on using CUPS.
For those having a LaserJet 5L or similar printer that has problems with multiple sheets feeding through at once.