LPR(1)

NAME
lpr - off line print

SYNOPSIS
lpr [ -Pprinter ] [ -#num ] [ -C class ] [ -J job ] [ -T title ] [ -i [ numcols ]] [ -1234 font ] [ -wnum ] [ -pltndgvcfrmhs ] [ name ... ]

DESCRIPTION
Lpr uses a spooling daemon to print the named files when facilities become available. If no names appear, the standard input is assumed. The -P option may be used to force output to a specific printer. Normally, the default printer is used (site dependent), or the value of the environment variable PRINTER is used.

The following single letter options are used to notify the line printer spooler that the files are not standard text files. The spooling daemon will use the appropriate filters to print the data accordingly. With the exception of -p and -l, these filters are not supplied; see the section entitled Filters below.

-p  Use pr(1) to format the files

-l  Use filter from the if entry in /etc/printcap; normally set to /usr/lib/lpf/lpf, which allows control characters to be printed and suppresses page breaks.

-t  Use filter from the tf entry in /etc/printcap, conventionally used to process troff output (CAT phototypesetter commands).

-n  Use filter from the nf entry in /etc/printcap, conventionally used to process the output of ditroff (device independent troff).

-d  Use filter from the df entry in /etc/printcap, conventionally used to process the output of tex (DVI format from Stanford).

-g  Use the filter from the gf entry in /etc/printcap, conventionally used to process standard plot data as produced by the plot(3X) routines.

-v  Use the filter from the vf entry in /etc/printcap, conventionally used to process a raster image for devices like the Benson Varian.

-c  Use the filter from the cf entry in /etc/printcap.

-f  Use the filter from the rf entry in /etc/printcap, conventionally used to interpret the first character of each line as a standard FORTRAN carriage control character.

The remaining single letter options have the following meaning.

-r  Remove the file upon completion of spooling or upon completion of printing (with the -s option).

-m  Send mail upon completion.

-h  Suppress the printing of the burst page.

-s  Use symbolic links. Usually files are copied to the spool directory.

The -C option takes the following argument as a job classification for use on the burst page. For example,

lpr -C EECS foo.c

causes the system name (the name returned by hostname(1)) to be replaced on the burst page by EECS, and the file foo.c to be printed.

The -J option takes the following argument as the job name to print on the burst page. Normally, the first file's name is used.

The -T option uses the next argument as the title used by pr(1) instead of the file name.

To get multiple copies of output, use the -#num option, where num is the number of copies desired of each file named. For example,

lpr -#3 foo.c bar.c more.c

would result in 3 copies of the file foo.c, followed by 3 copies of the file bar.c, etc. On the other hand,

cat foo.c bar.c more.c | lpr -#3

will give three copies of the concatenation of the files.

The -i option causes the output to be indented. If the next argument is numeric, it is used as the number of blanks to be printed before each line; otherwise, 8 characters are printed.

The -w option takes the immediately following number to be the page width for pr.

The -s option will use symlink(2) to link data files rather than trying to copy them so large files can be printed. This means the files should not be modified or removed until they have been printed. This option only works for local files. Print jobs from remote hosts are always copied into the spool area.

The option -1234 Specifies a font to be mounted on font position i. The daemon will construct a .railmag file referencing /usr/lib/vfont/name.size.

FILTERS
Although lpr provides options for selecting various output filters, the filters are actually run by the line printer daemon, lpd(8). In the case of a remote printer, therefore, the filters must be installed on the remote machine. Instructions for writing line printer filters can be found in 4.3BSD Line Printer Spooler Manual, section SMM:6 of the Unix System Manager's Manual.

FILES
/etc/passwd	personal identification
/etc/printcap	printer capabilities data base
/usr/lib/lpd*	line printer daemons
/var/spool/*	directories used for spooling
/var/spool/*/cf*	daemon control files
/var/spool/*/df*	data files specified in "cf" files
/var/spool/*/tf*	temporary copies of "cf" files
/var/adm/lpd-errs	messages from the printer daemon

SEE ALSO
lpq(1), lprm(1), pr(1), symlink(2), printcap(5), lpc(8), lpd(8)
4.3BSD Line Printer Spooler Manual, section SMM:6 of the Unix System Manager's Manual.

DIAGNOSTICS
If you try to spool too large a file, it will be truncated. Lpr will object to printing binary files. If a user other than root prints a file and spooling is disabled, lpr will print a message saying so and will not put jobs in the queue. If a connection to lpd on the local machine cannot be made, lpr will say that the daemon cannot be started. Diagnostics may be printed in the daemon's log file regarding missing spool files by lpd.

BUGS
Fonts for troff and tex reside on the host with the printer. It is currently not possible to use local font libraries.

Those error messages which come from lpd rather than lpr are not reported to the user's terminal, but instead to a log file, usually /var/adm/lpd-errs. In the case of a remote printer, this log file is on the remote machine. The most common reason for such an error is an attempt to use a non-existent filter.