Man page for lprwrap(1)

Man page for lprwrap(1)


lprwrap - enhanced lpr with options for duplexing and n-up printing


lprwrap [options] [file]...


lprwrap is a wrapper around the standard lpr program that performs client-side pre-processing of print jobs. It recognizes special options for duplex printing and n-up printing, and can be used as a drop-in replacement for a BSD compatible lpr.


Options specific to lprwrap:

Print usage information and exit.

Print version information and exit.

Print some diagnostics to stderr.

Send output to stdout instead of printer.

Force printing of long text files. Usually the size of text files is limited to 16000 characters, to prevent paper waste from non-text files accidentally printed as text. This option lifts this limit.

--tmpdir dir
Set directory for temporary files.

--lpr name
Program to use for the backend lpr. Default: lpr. An exception is when lpr is a name for the lprwrap script itself (for example, a symbolic link); in this case, we use lpr-orig as the default name of the backend.

-oduplex, -od
Duplex printing (with long edge binding). Note that -oduplex and -ohduplex refer to whether you turn the page on the long edge or on the short edge, with respect to the input page. That is, if you select -o2up, you should still select -oduplex, just as you would if you hadn't selected -o2up. But if your input file is in landscape format, you should probably select -ohduplex.

-ohduplex, -oh
Duplex printing (with short edge binding). See also -oduplex.

-osimplex, -os
No duplex printing (default).

Select a paper size: letter, executive, legal, a3, a4, a5, b5, tabloid, statement, folio, quarto, 10x14. (default is letter).

Select a tray: upper, middle, lower, manual.

2-up printing.

4-up printing.

8-up printing.

9-up printing.

16-up printing.

Faster, but uglier n-up printing (don't fit to size).

Handle non-white background colors. Normally, when calculating the bounding box of a document, lprwrap assumes that the background (i.e., the margins) are white. With the -osolid option, solidly colored backgrounds are handled correctly, at the expense of much slower execution. Patterned backgrounds are not currently supported.

Set the minimum margin around the printed portion of the page. The default is 0.5in. The left (L), right (R), top (T), and bottom (B) margins can also be set separately.

Set the percentage of pixels that are allowed out of bounds. The default is 0. When calculating the bounding box of a document, a small amount of text or pixels protruding into the margins can mess up the computation. The -ofudge option makes the bounding box slightly smaller by allowing a percentage of the pixels to be outside the bounding box. This threshold can be set separately for the left (L), right (R), top (T), and bottom (B) margins.

Note that -ofudge=20 is equivalent to -ofudge=LRTB20. This means 20 percent of the pixels are allowed to be in each of the left, right, top, and bottom margins. Therefore up to 80 (and not 20) percent of the pixels can be outside the bounding box.

Fit to size in 1-up mode.

Print a box around each page (plain text only).

Print date and user name on each page (plain text only).

With -#, make num copies of each page, not of each file.

Let CUPS handle duplexing, paper and tray selection, and collation. The (preferable) default behavior is to handle these features in the frontend and encode them as PostScript instructions. There is no need to use this option unless your version of CUPS (probably an older version) is having trouble with handling the above features; in this case, specifying -ocups option might solve the problem.

Standard lpr options:

The following standard lpr options are also supported:

-P printer
Direct output to a specific printer.

Do not print burst page.

Send mail upon completion.

Remove the file upon completion of spooling.

-# num
Number of copies to make of each file.

-[1234] font
Specify a font to be mounted on font position 1-4.

-C class
Job classification to use on the burst page.

-J job
Job name to print on the burst page.

-U user

User name to print on the burst page and for accounting. 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.

Ignored options:

The following options are ignored for backwards compatibility: -T title, -i numcols, -w num, -c, -d, -f, -g, -l, -n, -p, -t, -v, -s.


Command line options are also read from the two files /etc/lprrc and $HOME/.lprrc, if they exist, and processed in that order before any other command line options are processed. For instance, if you like duplex printing to be your default, put "-od" into one of these files, or if you would like to use a private temp directory, put "--tmpdir tmpdir". You can also use this to set the default paper size.


On successful completion, 0 is returned, otherwise a positive error number.




Peter Selinger <selinger at>


Copyright (C) 2001-2019 Peter Selinger.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. See also


pstops(1), pstops-clip(1), gs(1), psdim(1)