LPF(1)
π LPF(1) β the lpf filter, aka the general printer filter π
okay bestie, sit down, hydrate, and let me tell you about lpf β it's the general printer filter, and it's giving backbone of your print queue energy. π
β¨ NAME β¨
lpf β general printer filter π¨οΈπ
β¨ SYNOPSIS β¨
lpf -Pprinter -wwidth -llength -xwidth -ylength [ -c ] -Kcontrolfilename
-Lbnrname [ -iindent ] [ -Zoptions ] [ -Cclass ] [ -Jjob ] [ -Raccntname
] -nlogin -hHost -Fformat [ -T[crlf,debug] -Dlevel ] [ affile ]
look at all those flags. it's a lot. we're gonna go through every single one, no skips, no cap. π«Ά
β¨ DESCRIPTION β¨
So lpf is a general printer filter. Usually it lives inside the printcap file as a filter, and it gets called by lpd. That's its whole thing. It's the little guy doing the actual work while everyone else takes credit. π€
Two spicy behaviors up top, real quick:
- The
-Tcrlfoption will suppress translation of LF to CR/LF pairs. - The
-Tdebugoption will increment the debug level.
πΈ Options that lpd passes by default
These ones? lpd just hands them over automatically. You don't have to do anything. Iconic behavior honestly.
-Pprinterβ the name of the printer. that's it, that's the printer. π¨οΈ-wwidthβ the page width in chars, exactly as given in the:pwfield in theprintcapfile.-llengthβ the page length in lines, as given in the:plfield in theprintcapfile.-xwidthβ the page width in pixels, as given in the:pxfield in theprintcapfile.-ylengthβ the page length in pixels, as given in the:pyfield in theprintcapfile.-Kcontrolfilenameβ the name of the control file.-Lbnrnameβ the banner name. this one is set by thelpr -Toption.-nloginβ the user login name. π€-hHostβ the host where the job was submitted.-Fformatβ the job format, from thelpr -Foption or other option.
π Options that lpd sets optionally
-Zoptionsβ extra options. They are passed from the-Zparameter given on thelprcommand line, and the filter can interpret them however it wants. it's a free-for-all, lowkey. π¦
π Options you can add yourself in the printcap file
These remaining ones? You can add them to the filter entry in the printcap file. Your house, your rules. π β¨
-cβ ignore control characters. Set by thelpr -b(binary) or-l(literal) options.-iindentβ the indentation amount, set by thelpr -i indentoption.-Cclassβ the class name, set by thelpr -C classoption.-Jjobβ the job name, set by thelpr -J joboption.-Raccntnameβ the name of the accounting file, fromprintcapinformation. πΈ-Dlevelβ sets the debug level. The level must be an integer, and a nonzero value switches debugging on.-Tcrlfβ turn LF to CR/LF translation off.-Tdebugβ increment the debug level. yes again. it's here twice. it's just that important. π
β¨ EXIT STATUS β¨
The following exit values are returned, and they are not subtle:
- zero (
0) β successful completion. slay. π - non-zero (
!=0) β an error occurred. π
β¨ FILES β¨
The files used by LPRng are set by values in the printer configuration file. The following are a commonly used set of default values β your mileage may vibe differently.
/etc/lprng/lpd.conf LPRng configuration file
${HOME}/.printcap user printer description file
/etc/printcap printer description file
/etc/lprng/lpd.perms permissions
/var/run/lprng/lpd lock file for queue control
/var/spool/lpd spool directories
/var/spool/lpd/QUEUE/control queue control
/var/spool/lpd/QUEUE/log trace or debug log file
/var/spool/lpd/QUEUE/acct accounting file
/var/spool/lpd/QUEUE/status status file
β¨ SEE ALSO β¨
lpd.conf(5), lpc(8), lpd(8), lpr(1), lpq(1), lprm(1), printcap(5), lpd.perms(5), pr(1), lprng_certs(1), lprng_index_certs(1).
the whole friend group, basically. π«
β¨ AUTHOR β¨
Patrick Powell <papowell@lprng.com>. the king who wrote this. π
β¨ DIAGNOSTICS β¨
Most of the diagnostics are self explanatory. But if you are puzzled over the exact cause of failure, set the debugging level on (-D5) and run again. The debugging information will help you to pinpoint the exact cause of failure. fr fr, -D5 is your bestie here. π
β¨ HISTORY β¨
LPRng is an enhanced printer spooler system with functionality similar to the Berkeley LPR software. The LPRng developer mailing list is lprng-devel@lists.sourceforge.net; subscribe by visiting https://lists.sourceforge.net/lists/listinfo/lprng-devel or sending mail to lprng-request@lists.sourceforge.net with the word subscribe in the body.
The software is available via http://lprng.sourceforge.net. π
okay that's the whole page bestie, you're officially an lpf scholar π
this was brought to you by the LPRng girlies, dated 2006-12-09 β yes the date is ancient, and yes she still ate. periodt. π β¨
π¦ where this page comes from
- debian bookworm: lprng 3.8.B-6 Β· GPL-2.0-or-later WITH OpenSSL exception OR Artistic-1.0-Perl
- debian trixie: lprng 3.8.B-9 Β· GPL-2.0-or-later WITH OpenSSL exception OR Artistic-1.0-Perl
- ubuntu jammy: lprng 3.8.B-5 Β· GPL-2.0-or-later WITH OpenSSL exception OR Artistic-1.0-Perl
- ubuntu noble: lprng 3.8.B-8build1 Β· GPL-2.0-or-later WITH OpenSSL exception OR Artistic-1.0-Perl
- ubuntu questing: lprng 3.8.B-9
- ubuntu resolute: lprng 3.8.B-10 Β· GPL-2.0-or-later WITH OpenSSL exception OR Artistic-1.0-Perl
- ubuntu stonking: lprng 3.8.B-11 Β· GPL-2.0-or-later WITH OpenSSL exception OR Artistic-1.0-Perl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms