--get your your Linux knowledge
> Linux Reviews > Manual Pages (man) >


- print files



Manpage of lp


Section: Apple Inc. (1)
Updated: CUPS
Index Return to Main Contents


lp - print files  


lp [ -E ] [ -U username ] [ -c ] [ -d destination[/instance] ] [ -h hostname[:port] ] [ -m ] [ -n num-copies ] [ -o option[=value] ] [ -q priority ] [ -s ] [ -t title ] [ -H handling ] [ -P page-list ] [ -- ] [ file(s) ]
lp [ -E ] [ -U username ] [ -c ] [ -h hostname[:port] ] [ -i job-id ] [ -n num-copies ] [ -o option[=value] ] [ -q priority ] [ -t title ] [ -H handling ] [ -P page-list ]  


lp submits files for printing or alters a pending job. Use a filename of "-" to force printing from the standard input.  


CUPS provides many ways to set the default destination. The "LPDEST" and "PRINTER" environment variables are consulted first. If neither are set, the current default set using the lpoptions(1) command is used, followed by the default set using the lpadmin(8) command.  


The following options are recognized by lp:

Marks the end of options; use this to print a file whose name begins with a dash (-).

Forces encryption when connecting to the server.
-U username

Specifies the username to use when connecting to the server.

This option is provided for backwards-compatibility only. On systems that support it, this option forces the print file to be copied to the spool directory before printing. In CUPS, print files are always sent to the scheduler via IPP which has the same effect.
-d destination

Prints files to the named printer.
-h hostname[:port]

Chooses an alternate server.
-i job-id

Specifies an existing job to modify.

Sends an email when the job is completed.
-n copies

Sets the number of copies to print from 1 to 100.
-o "name=value [name=value ...]"

Sets one or more job options.
-q priority

Sets the job priority from 1 (lowest) to 100 (highest). The default priority is 50.

Do not report the resulting job IDs (silent mode.)
-t "name"

Sets the job name.
-u username

Submits jobs as username.
-H hh:mm
-H hold
-H immediate
-H restart
-H resume

Specifies when the job should be printed. A value of immediate will print the file immediately, a value of hold will hold the job indefinitely, and a UTC time value (HH:MM) will hold the job until the specified UTC (not local) time. Use a value of resume with the -i option to resume a held job. Use a value of restart with the -i option to restart a completed job.
-P page-list

Specifies which pages to print in the document. The list can contain a list of numbers and ranges (#-#) separated by commas (e.g. 1,3-5,16). The page numbers refer to the output pages and not the document's original pages - options like "number-up" can affect the numbering of the pages.


Aside from the printer-specific options reported by the lpoptions(1) command, the following generic options are available:
-o media=size

Sets the page size to size. Most printers support at least the size names "a4", "letter", and "legal".
-o landscape
-o orientation-requested=4

Prints the job in landscape (rotated 90 degrees).
-o sides=one-sided
-o sides=two-sided-long-edge
-o sides=two-sided-short-edge

Prints on one or two sides of the paper. The value "two-sided-long-edge" is normally used when printing portrait (unrotated) pages, while "two-sided-short-edge" is used for landscape pages.
-o fitplot

Scales the print file to fit on the page.
-o number-up=2
-o number-up=4
-o number-up=6
-o number-up=9
-o number-up=16

Prints multiple document pages on each output page.
-o scaling=number

Scales image files to use up to number percent of the page. Values greater than 100 cause the image file to be printed across multiple pages.
-o cpi=N

Sets the number of characters per inch to use when printing a text file. The default is 10.
-o lpi=N

Sets the number of lines per inch to use when printing a text file. The default is 6.
-o page-bottom=N
-o page-left=N
-o page-right=N
-o page-top=N

Sets the page margins when printing text files. The values are in points - there are 72 points to the inch.


Print a double-sided legal document to a printer called "foo":
    lp -d foo -o media=legal -o sides=two-sided-long-edge filename

Print an image across 4 pages:

    lp -d bar -o scaling=200 filename

Print a text file with 12 characters per inch, 8 lines per inch, and a 1 inch left margin:

    lp -d bar -o cpi=12 -o lpi=8 -o page-left=72 filename


Unlike the System V printing system, CUPS allows printer names to contain any printable character except SPACE, TAB, "/", or "#". Also, printer and class names are not case-sensitive.

The "q" option accepts a different range of values than the Solaris lp command, matching the IPP job priority values (1-100, 100 is highest priority) instead of the Solaris values (0-39, 0 is highest priority).  


cancel(1), lpadmin(8), lpmove(8), lpoptions(1), lpstat(1),


Copyright 2007-2011 by Apple Inc.




This document was created by man2html using the manual pages.
Time: 17:31:27 GMT, October 23, 2013


Manpage of LP


Section: Linux Programmer's Manual (4)
Updated: 1995-01-15
Index Return to Main Contents


lp - line printer devices  


#include <linux/lp.h>  


lp[0-2] are character devices for the parallel line printers; they have major number 6 and minor number 0-2. The minor numbers correspond to the printer port base addresses 0x03bc, 0x0378 and 0x0278. Usually they have mode 220 and are owned by root and group lp. You can use printer ports either with polling or with interrupts. Interrupts are recommended when high traffic is expected, for example, for laser printers. For usual dot matrix printers polling will usually be enough. The default is polling.  


The following ioctl(2) calls are supported:
int ioctl(int fd, LPTIME, int arg)
Sets the amount of time that the driver sleeps before rechecking the printer when the printer's buffer appears to be filled to arg. If you have a fast printer, decrease this number; if you have a slow printer then increase it. This is in hundredths of a second, the default 2 being 0.02 seconds. It only influences the polling driver.
int ioctl(int fd, LPCHAR, int arg)
Sets the maximum number of busy-wait iterations which the polling driver does while waiting for the printer to get ready for receiving a character to arg. If printing is too slow, increase this number; if the system gets too slow, decrease this number. The default is 1000. It only influences the polling driver.
int ioctl(int fd, LPABORT, int arg)
If arg is 0, the printer driver will retry on errors, otherwise it will abort. The default is 0.
int ioctl(int fd, LPABORTOPEN, int arg)
If arg is 0, open(2) will be aborted on error, otherwise error will be ignored. The default is to ignore it.
int ioctl(int fd, LPCAREFUL, int arg)
If arg is 0, then the out-of-paper, offline and error signals are required to be false on all writes, otherwise they are ignored. The default is to ignore them.
int ioctl(int fd, LPWAIT, int arg)
Sets the number of busy waiting iterations to wait before strobing the printer to accept a just-written character, and the number of iterations to wait before turning the strobe off again, to arg. The specification says this time should be 0.5 microseconds, but experience has shown the delay caused by the code is already enough. For that reason, the default value is 0. This is used for both the polling and the interrupt driver.
int ioctl(int fd, LPSETIRQ, int arg)
This ioctl(2) requires superuser privileges. It takes an int containing the new IRQ as argument. As a side effect, the printer will be reset. When arg is 0, the polling driver will be used, which is also default.
int ioctl(int fd, LPGETIRQ, int *arg)
Stores the currently used IRQ in arg.
int ioctl(int fd, LPGETSTATUS, int *arg)
Stores the value of the status port in arg. The bits have the following meaning:
LP_PBUSYinverted busy input, active high
LP_PACKunchanged acknowledge input, active low
LP_POUTPAunchanged out-of-paper input, active high
LP_PSELECDunchanged selected input, active high
LP_PERRORPunchanged error input, active low

Refer to your printer manual for the meaning of the signals. Note that undocumented bits may also be set, depending on your printer.

int ioctl(int fd, LPRESET)
Resets the printer. No argument is used.




chmod(1), chown(1), mknod(1), lpcntl(8), tunelp(8)  


This page is part of release 3.32 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at




This document was created by man2html using the manual pages.
Time: 17:31:27 GMT, October 23, 2013


Meet new people