lpr [ -A ] [ -B ] [ -b,l ] [
-C class ] [ -D debugopt ] [ -F
filterformat ] [ -G ] [ -h ] [ -i indentcols
] [ -k ] [ -J job ] [ -K,# copies ] [
-m mailTo ] [ -P printer ] [ -r ] [
-R remoteAccount ] [ -s ] [ -T title ] [
-U user ] [ -V ] [ -w width ] [
-X userfile ] [ -Y ] [ -Z options ] [
-1,2,3,4 font ] [ -- ] [ filename ... ]
Lpr uses a spooling daemon to print the named files when
facilities become available. If no names appear, the standard input is
assumed.
- -A
- The authentication type is set by the value of the AUTH environment
variable.
- -B
- Do filtering of job files by the filters specified by the printcap.
Combine the output of the filtering operation into a single job file and
then send the single file to the lpd print spooler.
- -b, -l
- either of these flags specifies a binary or literal file, and no (or
minimal) processing is to be done by the print spooling system. Printed
using the f format filter (:if=... or :filter=...).
- -C class
- Specify the job classification for use on the burst page and to set the
priority. Priorities range from A (lowest) to Z (highest); the default
priority is A. For example,
lpr -C B foo.c
sets the priority/class to B and the file foo.c is printed.
- -D debugoptions
- Debugging is controlled using the -D option. This accepts a
comma-separated list of debugging settings. These settings take one of two
forms: facility=value, or value to set an overall
default value.
- -F
filterformat
- Filter or format specification. By default, input is assumed to a standard
text file and the f format is used; the output device is assumed to
be a simple line printer. Other formats available are listed below. Not
all formats may be available on all printers; see printcap(5) for
details. Formats are single lower case letters; the following are the
valid arguments for -F together with the assumed type of data. For
compatibility with previous versions of lpr, the format types can
be used as options themselves (i.e. by omitting the F) except where
noted below, a warning may be issued in such cases.
- -G
- Similar to the -B option, but only processes individual files.
- -h
- No banner or header for this job.
- -i indentcols
- Indent input by indentcols. Note that this option is not supported on all
printers.
- -J jobname
- Specify the job name to print on the burst page; defaults to the name of
files in the job or (STDIN) if input is from a pipe.
- -Kcopies, -#copies
- Specify the number of copies of each file to be printed. You may or may
not get the requested number of copies depending on the intelligence of
the remote printing system.
- -k
- lpr normally creates a temporary file for the input read from stdin
before sending it to the remote printer. The -k (kut-through)
option will simply copy from STDIN to the destination print spooling
system. If you kill the job in the middle of creation then the partly
transferred file will get printed. This option may not work with very
large jobs, non-LPRng spoolers, or when you have encryption or
authentication enabled.
- -m mailTo
- Send mail upon unsuccessful completion to user mailTo. The mailTo
value has been used to do such things as specify email (user@host), paging
(page:user@host), both (user@host,page:user@host) and all sorts of other
notifier information. See the LPRng HOWTO for details on how this is
implemented.
- -P printer
- By default, the destination printer is taken from the command line -P
printer value, then the environment variables PRINTER, LPDEST,
NPRINTER, NGPRINTER, then first entry in the printcap information, and and
finally the default_printer entry from the configuration file, and then
the compile time default.
- -R
remoteAccount
- Specify accounting information to be used by a remote system that prints
your output.
This parameter can be used to specify a billing code to be
charged for the printing.
- -r
- The DREADED REMOVE AFTER PRINTING option. Beware, for lpr
will delete the files after spooling them. Present by demand from users
for compatibility with other Berkeley lpr implementation, but really
should NOT be present.
- -T title
- Specify the title used by pr(1); defaults to the file name.
- -U username
- The -U option is used to specify a user name for the job. This is
available only to ROOT or users listed in the allow_user_setting
configuration option. This is obviously a security loophole, but it is
present to allow systems such as SAMBA to submit jobs on behalf of users.
See Authenticated Transfers below.
- -V
- Verbose mode. Additional -V flags increase verbosity. Use debug flags for
extreme verbosity.
- -w width
- Specify the page width for printing the job.
- -X path
- User specified filter for job files. Processing is done on the client
host.
- -Y
- Make a direct connection to the printer device and do not spool.
- -Z options
- Pass the specified options to the print spooler. Used when additional or
specialized information must be provided to the spooler.
- OBSOLETE OPTIONS
Lower case -c, -d, -g, -n, -t, -v
- Used to indicate: -c is data produced by cifplot(l),
-d is tex(l) (DVI format from Stanford), -g is
standard plot data as produced by the plot(3X) routines, -n
and -t is output from (device independent) troff, -v
a raster image for devices like the Benson Varian. These are
obsolete. These are retained for historical compatibility, but most of
their functionality has been replaced by the abilities of the printer
support system to determine the file type and do the appropriate
conversions.
- OBSOLETE OPTION
-p
- This is obsolete. This option is retained for historical
compatibility, but this functionality should be implemented on the client
system before sending the job to the printer. Use pr(1) to format
the files, then print using f format. This may not be supported on
the print system.
- OBSOLETE
-s
- This flag is included for compatibility with other versions of lpr.
In these versions it will create a symbolic link to the files to be
printed. Lpr now sends files directly to the server and it is
irrelevant.
- OBSOLETE
OPTIONS -1,2,3,4fontname
- Specify a font to be mounted on font position i for TROFF printing
(Obsolete).
By default, if no filenames are specified lpr will read
stdin and print it.
The original LPR network protocol defined in RFC1179 did not
provide for user to server authentication. This is now supported by LPRng.
See the LPRng support documentation for details on its operation and
support.
The LPRng version of lpr attempts to be functionally
compatible with common implementations of lpr. However, there are
some commands and functionality that are deliberately missing.
- -s Symbolic
Links
- (Berkeley LPR) This option specified that a symbolic link to the original
data file rather than a copy of the data file was to be used when spooling
jobs. This opens up a variety of security problems, as well as being
ineffective when printing to a remote host.
LPRng supports ultra-lightweight printing by eliminating the need
for a print spooler. This is quite dangerous, but makes the lpr client very
lightweight. The -Y command line option and the :direct
printcap option enables lpr to connect directly to a specified port or use a
program to send a job. This filter also enables client side filtering, so if
there are any filters specified in the printcap entry they will be used. For
example:
lpr -Y -Phost%port file1 file2 ...
approximately equivalent to:
for i in file1 file2 ...; do
${filter} <$i;
# ${filter} is filter from printcap
done >host%port (TCP/IP connection)
lpr -Y -Phost%port -X userfilter file1 file2 ...
approximately equivalent to:
for i in file1 file2 ...; do
userfilter <$i;
done >host%port (TCP/IP connection)
Summary:
-P host%port > TCP/IP connection to host%port
-P /dev/lp > /dev/lp
-P '|/program' | /program
SPECIAL CASE
lpr -Y -Ppr@host -X userfilter file1 file2 ...
approximately equivalent to:
for i in file1 file2 ...; do
userfilter <$i >temp.$i;
done
lpr -Ppr@host temp.file1 temp.file2
The -B option or the :lpr_bounce is used to filter and make
a single file out of a set of print files and then forward them.
lpr -B -Ppr@host
approximately equivalent to:
lpr -Y -P/tmp/tempfile file1 file2 ...
lpr -Ppr@host /tmp/tempfile
You can also use a printcap entry and the :direct
options.
Printcap:
lp:direct:lp=h14%9100:remote_support=R
lpr -Plp file1 file2
Same as:
lpr -Plp -Y -Ph14%9100 file1 file2
The :remote_support option is used to prevent the
lpq and lpc program from attempting to send jobs to the
device.
By default, the destination printer is taken from the command line
-P printer value, then the environment variables PRINTER, LPDEST,
NPRINTER, NGPRINTER, then first entry in the printcap information, and and
finally the default_printer entry from the configuration file, and then the
compile time default.
The printer names and other information is obtained by using a
printcap file or some other database. The ${HOME}/.printcap file can be used
to specify user level options and configuration information. See printcap(5)
for more information.
The files used by LPRng are set by values in the printer
configuration file. The following are a commonly used set of default
values.
/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
lpd.conf(5), lpc(8), lpd(8),
checkpc(8), lpq(1), lprm(1), checkpc(8),
printcap(5), lpd.perms(5), pr(1).
Patrick Powell <papowell@lprng.com>.
Most of the diagnostics are self explanatory. 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.
LPRng is a 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