---
name: "lpr"
section: "1"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/lpr"
---

# lpr(1)

off line print

## NAME

**lpr** – off line print

## SYNOPSIS

**lpr** \[**-cdfghlmnpqrstv**\] \[**-#***num*\] \[**-1234** *font*\] \[**-C** *class*\] \[**-i** \[*numcols*\]\] \[**-J** *job*\] \[**-P***printer*\] \[**-T** *title*\] \[**-U** *user*\] \[**-w***num*\] \[*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 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.

- **-c**

  The files are assumed to contain data produced by **cifplot**.

- **-d**

  The files are assumed to contain data from *tex* (DVI format from Stanford).

- **-f**

  Use a filter which interprets the first character of each line as a standard FORTRAN carriage control character.

- **-g**

  The files are assumed to contain standard plot data as produced by the **plot** routines.

- **-l**

  Use a filter which allows control characters to be printed and suppresses page breaks.

- **-n**

  The files are assumed to contain data from *ditroff* (device independent troff).

- **-p**

  Use [pr(1)](/pr/1.md) to format the files.

- **-t**

  The files are assumed to contain data from troff (cat phototypesetter commands).

- **-v**

  The files are assumed to contain a raster image for devices like the Benson Varian.

These options apply to the handling of the print job:

- **-h**

  Suppress the printing of the burst page.

- **-m**

  Send mail upon completion.

- **-P***printer*

  Force output to a specific printer. Normally, the default printer is used (site dependent), or the value of the environment variable PRINTER is used.

- **-q**

  Queue the print job but do not start the spooling daemon.

- **-r**

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

- **-s**

  Use symbolic links. Usually files are copied to the spool directory. The **-s** option will use [symlink(2)](/symlink/2.md) 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.

The remaining options apply to copies, the page display, and headers:

- **-#***num*

  The quantity *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. Often a site will disable this feature to encourage use of a photocopier instead.

- **-1234** *font*

  Specifies a *font* to be mounted on font position *i*. The daemon will construct a .railmag file referencing the font pathname.

- **-C** *class*

  Job classification to use on the burst page. For example,

  ```
  $ lpr -C EECS foo.c
  ```

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

- **-i** \[*numcols*\]

  The output is indented. If the next argument is numeric (*numcols*), it is used as the number of blanks to be printed before each line; otherwise, 8 characters are printed.

- **-J** *job*

  Job name to print on the burst page. Normally, the first file's name is used.

- **-T** *title*

  Title name for [pr(1)](/pr/1.md), instead of the file name.

- **-U** *user*

  User name to print on the burst page, also for accounting purposes. This option is only honored if the real user ID is daemon (or that specified in the printcap file instead of daemon), and is intended for those instances where print filters wish to requeue jobs.

- **-w***num*

  Uses *num* as the page width for [pr(1)](/pr/1.md).

## ENVIRONMENT

If the following environment variable exists, it is used by **lpr**:

- PRINTER

  Specifies an alternate default printer.

## FILES

- */etc/passwd*

  local users database

- */etc/printcap*

  printer capabilities database

- */usr/sbin/lpd\**

  line printer daemons

- */var/spool/output/\**

  directories used for spooling

- */var/spool/output/\*/cf\**

  daemon control files

- */var/spool/output/\*/df\**

  data files specified in “cf” files

- */var/spool/output/\*/tf\**

  temporary copies of “cf” files

## DIAGNOSTICS

If you try to spool too large a file, it will be truncated. 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(8)](/lpd/8.md) 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(8)](/lpd/8.md).

## SEE ALSO

[lpq(1)](/lpq/1.md), [lprm(1)](/lprm/1.md), [pr(1)](/pr/1.md), [symlink(2)](/symlink/2.md), [printcap(5)](/printcap/5.md), [lpc(8)](/lpc/8.md), [lpd(8)](/lpd/8.md)

## HISTORY

The **lpr** command appeared in Version 5 AT&T UNIX.

## BUGS

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