mirror of https://gitee.com/openkylin/cups.git
551 lines
16 KiB
HTML
551 lines
16 KiB
HTML
<HTML>
|
|
<!-- SECTION: Getting Started -->
|
|
<HEAD>
|
|
<TITLE>Command-Line Printing and Options</TITLE>
|
|
<LINK REL="STYLESHEET" TYPE="text/css" HREF="../cups-printable.css">
|
|
</HEAD>
|
|
<BODY>
|
|
|
|
<H1 CLASS="title">Command-Line Printing and Options</H1>
|
|
|
|
<P>CUPS provides both the System V (<A
|
|
HREF="man-lp.html">lp(1)</A>) and Berkeley (<A
|
|
HREF="man-lpr.html">lpr(1)</A>) printing commands for printing
|
|
files. In addition, it supported a large number of standard and
|
|
printer-specific options that allow you to control how and where
|
|
files are printed.</P>
|
|
|
|
|
|
<H2 CLASS="title"><A NAME="BASICS">Printing Files</A></H2>
|
|
|
|
<P>CUPS understands many different types of files directly,
|
|
including text, PostScript, PDF, and image files. This allows you
|
|
to print from inside your applications or at the command-line,
|
|
whichever is most convenient! Type either of the following
|
|
commands to print a file to the default (or only) printer on the
|
|
system:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp filename
|
|
lpr filename
|
|
</PRE>
|
|
|
|
<H3><A NAME="PRINTER">Choosing a Printer</A></H3>
|
|
|
|
<P>Many systems will have more than one printer available to the
|
|
user. These printers can be attached to the local system via a
|
|
parallel, serial, or USB port, or available over the network. Use
|
|
the <A HREF="man-lpstat.html">lpstat(1)</A> command to see a list
|
|
of available printers:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lpstat -p -d
|
|
</PRE>
|
|
|
|
<P>The <CODE>-p</CODE> option specifies that you want to see a
|
|
list of printers, and the <CODE>-d</CODE> option reports the
|
|
current default printer or class.</P>
|
|
|
|
<P>Use the <CODE>-d</CODE> option with the <B>lp</B> command to
|
|
print to a specific printer:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp -d printer filename
|
|
</PRE>
|
|
|
|
<P>or the <CODE>-P</CODE> option with the <B>lpr</B> command:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lpr -P printer filename
|
|
</PRE>
|
|
|
|
<H3><A NAME="DEFAULT">Setting the Default Printer</A></H3>
|
|
|
|
<P>If you normally use a particular printer, you can tell CUPS to
|
|
use it by default using the <A
|
|
HREF="man-lpoptions.html">lpoptions(1)</A> command:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lpoptions -d printer
|
|
</PRE>
|
|
|
|
<H3><A NAME="PIPE">Printing the Output of a Program</A></H3>
|
|
|
|
<P>Both the <B>lp</B> and <B>lpr</B> commands support printing
|
|
from the standard input:</P>
|
|
|
|
<PRE CLASS="command">
|
|
program | lp
|
|
program | lp -d printer
|
|
program | lpr
|
|
program | lpr -P printer
|
|
</PRE>
|
|
|
|
<P>If the program does not provide any output, then nothing will
|
|
be queued for printing.</P>
|
|
|
|
<H3><A NAME="WITHOPTIONS">Specifying Printer Options</A></H3>
|
|
|
|
<P>For many types of files, the default printer options may be
|
|
sufficient for your needs. However, there may be times when you
|
|
need to change the options for a particular file you are
|
|
printing.</P>
|
|
|
|
<P>The <B>lp</B> and <B>lpr</B> commands allow you to pass
|
|
printer options using the <CODE>-o</CODE> option:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp -o landscape -o fit-to-page -o media=A4 filename.jpg
|
|
lpr -o landscape -o fit-to-page -o media=A4 filename.jpg
|
|
</PRE>
|
|
|
|
<P>The available printer options vary depending on the printer.
|
|
The standard options are described in the "<A
|
|
HREF="#OPTIONS">Standard Printing Options</A>" section
|
|
below. Printer-specific options are also available and can be
|
|
listed using the <B>lpoptions</B> command:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lpoptions -p printer -l
|
|
</PRE>
|
|
|
|
<H3><A NAME="INSTANCES">Creating Saved Options</A></H3>
|
|
|
|
<P>Saved options are supported in CUPS through <em>printer
|
|
instances</em>. Printer instances are, as their name implies, copies
|
|
of a printer that have certain options associated with them. Use the
|
|
<B>lpoptions</B> command to create a printer instance:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lpoptions -p printer/instance -o name=value ...
|
|
</PRE>
|
|
|
|
<P>The <CODE>-p printer/instance</CODE> option provides the name of
|
|
the instance, which is always the printer name, a slash, and the
|
|
instance name which can contain any printable characters except
|
|
space and slash. The remaining options are then associated with the
|
|
instance instead of the main queue. For example, the following
|
|
command creates a duplex instance of the LaserJet queue:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lpoptions -p LaserJet/duplex -o sides=two-sided-long-edge
|
|
</PRE>
|
|
|
|
<P>Instances <em>do not</em> inherit lpoptions from the main
|
|
queue.</P>
|
|
|
|
<H3><A NAME="COPIES">Printing Multiple Copies</A></H3>
|
|
|
|
<P>Both the <B>lp</B> and <B>lpr</B> commands have options for
|
|
printing more than one copy of a file:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp -n <EM>num-copies</EM> filename
|
|
lpr -#<EM>num-copies</EM> filename
|
|
</PRE>
|
|
|
|
<P>Copies are normally <EM>not</EM> collated for you. Use the
|
|
<CODE>-o collate=true</CODE> option to get collated copies:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp -n <EM>num-copies</EM> -o collate=true filename
|
|
lpr -#<EM>num-copies</EM> -o collate=true filename
|
|
</PRE>
|
|
|
|
|
|
<H2 CLASS="title"><A NAME="CANCEL">Canceling a Print Job</A></H2>
|
|
|
|
<P>The <A HREF="man-cancel.html">cancel(1)</A> and <A
|
|
HREF="man-lprm.html">lprm(1)</A> commands cancel a print job:</P>
|
|
|
|
<PRE CLASS="command">
|
|
cancel <EM>job-id</EM>
|
|
lprm <EM>job-id</EM>
|
|
</PRE>
|
|
|
|
<P>The <EM>job-id</EM> is the number that was reported to you by
|
|
the <B>lp</B> command. You can also get the job ID using the <A
|
|
HREF="man-lpq.html">lpq(1)</A> or <A
|
|
HREF="man-lpstat.html">lpstat</A> commands:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lpq
|
|
lpstat
|
|
</PRE>
|
|
|
|
|
|
<H2 CLASS="title"><A NAME="LPMOVE">Moving a Print Job</A></H2>
|
|
|
|
<P>The <A HREF="man-lpmove.html">lpmove(8)</A> command moves a print
|
|
job to a new printer or class:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lpmove <EM>job-id</EM> <i>destination</i>
|
|
</PRE>
|
|
|
|
<P>The <EM>job-id</EM> is the number that was reported to you by
|
|
the <B>lp</B> or <B>lpstat</B> commands. <i>Destination</i> is the
|
|
name of a printer or class that you want to actually print the job.
|
|
|
|
<BLOCKQUOTE><B>Note:</B>
|
|
|
|
<P>The <B>lpmove</B> command is located in the system command
|
|
directory (typically <VAR>/usr/sbin</VAR> or <VAR>/usr/local/sbin</VAR>),
|
|
and so may not be in your command path. Specify the full path to the
|
|
command if you get a "command not found" error, for example:
|
|
|
|
<PRE CLASS="command">
|
|
/usr/sbin/lpmove foo-123 bar
|
|
</PRE>
|
|
|
|
</BLOCKQUOTE>
|
|
|
|
|
|
<H2 CLASS="title"><A NAME="OPTIONS">Standard Printing Options</A></H2>
|
|
|
|
<P>The following options apply when printing all types of
|
|
files.</P>
|
|
|
|
<H3><A NAME="MEDIA">Selecting the Media Size, Type, and Source</A></H3>
|
|
|
|
<P>The <CODE>-o media=xyz</CODE> option sets the media size,
|
|
type, and/or source:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp -o media=Letter filename
|
|
lp -o media=Letter,MultiPurpose filename
|
|
lpr -o media=Letter,Transparency filename
|
|
lpr -o media=Letter,MultiPurpose,Transparency filename
|
|
</PRE>
|
|
|
|
<P>The available media sizes, types, and sources depend on the
|
|
printer, but most support the following options (case is not
|
|
significant):</P>
|
|
|
|
<UL>
|
|
|
|
<LI><CODE>Letter</CODE> - US Letter (8.5x11 inches, or 216x279mm)
|
|
|
|
<LI><CODE>Legal</CODE> - US Legal (8.5x14 inches, or 216x356mm)
|
|
|
|
<LI><CODE>A4</CODE> - ISO A4 (8.27x11.69 inches, or 210x297mm)
|
|
|
|
<LI><CODE>COM10</CODE> - US #10 Envelope (9.5x4.125 inches, or
|
|
241x105mm)
|
|
|
|
<LI><CODE>DL</CODE> - ISO DL Envelope (8.66x4.33 inches, or 220x110mm)
|
|
|
|
<LI><CODE>Transparency</CODE> - Transparency media type or source
|
|
|
|
<LI><CODE>Upper</CODE> - Upper paper tray
|
|
|
|
<LI><CODE>Lower</CODE> - Lower paper tray
|
|
|
|
<LI><CODE>MultiPurpose</CODE> - Multi-purpose paper tray
|
|
|
|
<LI><CODE>LargeCapacity</CODE> - Large capacity paper tray
|
|
|
|
</UL>
|
|
|
|
<P>The actual options supported are defined in the printer's PPD
|
|
file in the <CODE>PageSize</CODE>, <CODE>InputSlot</CODE>, and
|
|
<CODE>MediaType</CODE> options. You can list them using the
|
|
<B>lpoptions(1)</B> command:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lpoptions -p printer -l
|
|
</PRE>
|
|
|
|
<P>When <CODE>Custom</CODE> is listed for the <CODE>PageSize</CODE> option, you can specify custom media sizes using one of the following forms:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp -o media=Custom.<EM>WIDTH</EM>x<EM>LENGTH</EM> filename
|
|
lp -o media=Custom.<EM>WIDTH</EM>x<EM>LENGTH</EM>in filename
|
|
lp -o media=Custom.<EM>WIDTH</EM>x<EM>LENGTH</EM>cm filename
|
|
lp -o media=Custom.<EM>WIDTH</EM>x<EM>LENGTH</EM>mm filename
|
|
</PRE>
|
|
|
|
<P>where "WIDTH" and "LENGTH" are the width and length of the media in points, inches, centimeters, or millimeters, respectively.</P>
|
|
|
|
|
|
<H3><A NAME="ORIENTATION">Setting the Orientation</A></H3>
|
|
|
|
<P>The <CODE>-o landscape</CODE> option will rotate the page 90
|
|
degrees to print in landscape orientation:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp -o landscape filename
|
|
lpr -o landscape filename
|
|
</PRE>
|
|
|
|
<P>The <CODE>-o orientation-requested=N</CODE> option rotates the
|
|
page depending on the value of N:</P>
|
|
|
|
<UL>
|
|
|
|
<LI><CODE>-o orientation-requested=3</CODE> - portrait
|
|
orientation (no rotation)</LI>
|
|
|
|
<LI><CODE>-o orientation-requested=4</CODE> - landscape
|
|
orientation (90 degrees)</LI>
|
|
|
|
<LI><CODE>-o orientation-requested=5</CODE> - reverse
|
|
landscape or seascape orientation (270 degrees)</LI>
|
|
|
|
<LI><CODE>-o orientation-requested=6</CODE> - reverse
|
|
portrait or upside-down orientation (180 degrees)</LI>
|
|
|
|
</UL>
|
|
|
|
|
|
<H3><A NAME="SIDES">Printing On Both Sides of the Paper</A></H3>
|
|
|
|
<P>The <CODE>-o sides=two-sided-short-edge</CODE> and <CODE>-o
|
|
sides=two-sided-long-edge</CODE> options will enable two-sided
|
|
printing on the printer if the printer supports it. The <CODE>-o
|
|
sides=two-sided-short-edge</CODE> option is suitable for
|
|
landscape pages, while the <CODE>-o
|
|
sides=two-sided-long-edge</CODE> option is suitable for portrait
|
|
pages:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp -o sides=two-sided-short-edge filename
|
|
lp -o sides=two-sided-long-edge filename
|
|
lpr -o sides=two-sided-long-edge filename
|
|
</PRE>
|
|
|
|
<P>The default is to print single-sided:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp -o sides=one-sided filename
|
|
lpr -o sides=one-sided filename
|
|
</PRE>
|
|
|
|
|
|
<H3><A NAME="JOBSHEETS">Selecting the Banner Page(s)</A></H3>
|
|
|
|
<P>The <CODE>-o job-sheets=start,end</CODE> option sets the banner
|
|
page(s) to use for a job:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp -o job-sheets=none filename
|
|
lp -o job-sheets=standard filename
|
|
lpr -o job-sheets=classified,classified filename
|
|
</PRE>
|
|
|
|
<P>If only one banner file is specified, it will be printed
|
|
before the files in the job. If a second banner file is
|
|
specified, it is printed after the files in the job.</P>
|
|
|
|
<P>The available banner pages depend on the local system
|
|
configuration; CUPS includes the following banner files:</P>
|
|
|
|
<UL>
|
|
|
|
<LI><CODE>none</CODE> - Do not produce a banner page.
|
|
|
|
<LI><CODE>classified</CODE> - A banner page with a "classified"
|
|
label at the top and bottom.
|
|
|
|
<LI><CODE>confidential</CODE> - A banner page with a
|
|
"confidential" label at the top and bottom.
|
|
|
|
<LI><CODE>secret</CODE> - A banner page with a "secret" label
|
|
at the top and bottom.
|
|
|
|
<LI><CODE>standard</CODE> - A banner page with no label at the
|
|
top and bottom.
|
|
|
|
<LI><CODE>topsecret</CODE> - A banner page with a "top secret"
|
|
label at the top and bottom.
|
|
|
|
<LI><CODE>unclassified</CODE> - A banner page with an
|
|
"unclassified" label at the top and bottom.
|
|
|
|
</UL>
|
|
|
|
|
|
<H3><A NAME="JOBHOLDUNTIL">Holding Jobs for Later Printing</A></H3>
|
|
|
|
<P>The <CODE>-o job-hold-until=when</CODE> option tells CUPS to
|
|
delay printing until the "when" time, which can be one of the
|
|
following:</P>
|
|
|
|
<UL>
|
|
|
|
<LI><CODE>-o job-hold-until=indefinite</CODE>; print only
|
|
after released by the user or an administrator</LI>
|
|
|
|
<LI><CODE>-o job-hold-until=day-time</CODE>; print from
|
|
6am to 6pm local time</LI>
|
|
|
|
<LI><CODE>-o job-hold-until=night</CODE>; print from
|
|
6pm to 6am local time</LI>
|
|
|
|
<LI><CODE>-o job-hold-until=second-shift</CODE>; print from
|
|
4pm to 12am local time</LI>
|
|
|
|
<LI><CODE>-o job-hold-until=third-shift</CODE>; print from
|
|
12am to 8am local time</LI>
|
|
|
|
<LI><CODE>-o job-hold-until=weekend</CODE>; print on Saturday
|
|
or Sunday</LI>
|
|
|
|
<LI><CODE>-o job-hold-until=HH:MM</CODE>; print at the specified
|
|
UTC time</LI>
|
|
|
|
</UL>
|
|
|
|
<H3><A NAME="RELEASEJOB">Releasing Held Jobs</A></H3>
|
|
|
|
<P>Aside from the web interface, you can use the <B>lp</B> command
|
|
to release a held job:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp -i <em>job-id</em> -H resume
|
|
</PRE>
|
|
|
|
<P>where "job-id" is the job ID reported by the <B>lpstat</B>
|
|
command.</P>
|
|
|
|
|
|
<H3><A NAME="JOBPRIORITY">Setting the Job Priority</A></H3>
|
|
|
|
<P>The <CODE>-o job-priority=NNN</CODE> option tells CUPS to
|
|
assign a priority to your job from 1 (lowest) to 100 (highest),
|
|
which influences where the job appears in the print queue. Higher
|
|
priority jobs are printed before lower priority jobs, however
|
|
submitting a new job with a high priority will not interrupt an
|
|
already printing job.</P>
|
|
|
|
|
|
<H3><A NAME="OUTPUTORDER">Specifying the Output Order</A></H3>
|
|
|
|
<P>The <CODE>-o outputorder=normal</CODE> and <CODE>-o outputorder=reverse</CODE> options specify the order of the pages. Normal order prints page 1 first, page 2 second, and so forth. Reverse order prints page 1 last.</P>
|
|
|
|
|
|
<H3><A NAME="PAGERANGES">Selecting a Range of Pages</A></H3>
|
|
|
|
<P>The <CODE>-o page-ranges=pages</CODE> option selects a range
|
|
of pages for printing:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp -o page-ranges=1 filename
|
|
lp -o page-ranges=1-4 filename
|
|
lp -o page-ranges=1-4,7,9-12 filename
|
|
lpr -o page-ranges=1-4,7,9-12 filename
|
|
</PRE>
|
|
|
|
<P>As shown above, the <CODE>pages</CODE> value can be a single page, a
|
|
range of pages, or a collection of page numbers and ranges separated by
|
|
commas. The pages will always be printed in ascending order, regardless
|
|
of the order of the pages in the <CODE>page-ranges</CODE> option.
|
|
|
|
<P>The default is to print all pages.
|
|
|
|
<blockquote><b>Note:</b>
|
|
|
|
<p>The page numbers used by <code>page-ranges</code> refer to the output
|
|
pages and not the document's page numbers. Options like <code>number-up</code>
|
|
can make the output page numbering not match the document page numbers.</p>
|
|
|
|
</blockquote>
|
|
|
|
|
|
<H3><A NAME="NUMBERUP">N-Up Printing</A></H3>
|
|
|
|
<P>The <CODE>-o number-up=value</CODE> option selects N-Up
|
|
printing. N-Up printing places multiple document pages on a
|
|
single printed page. CUPS supports 1, 2, 4, 6, 9, and 16-Up
|
|
formats; the default format is 1-Up:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp -o number-up=1 filename
|
|
lp -o number-up=2 filename
|
|
lp -o number-up=4 filename
|
|
lpr -o number-up=16 filename
|
|
</PRE>
|
|
|
|
<P>The <CODE>-o page-border=value</CODE> option chooses the
|
|
border to draw around each page:</P>
|
|
|
|
<UL>
|
|
<LI><CODE>-o page-border=double</CODE>; draw two hairline borders around each page</LI>
|
|
<LI><CODE>-o page-border=double-thick</CODE>; draw two 1pt borders around each page</LI>
|
|
<LI><CODE>-o page-border=none</CODE>; do not draw a border (default)</LI>
|
|
<LI><CODE>-o page-border=single</CODE>; draw one hairline border around each page</LI>
|
|
<LI><CODE>-o page-border=single-thick</CODE>; draw one 1pt border around each page</LI>
|
|
</UL>
|
|
|
|
<P>The <CODE>-o number-up-layout=value</CODE> option chooses the
|
|
layout of the pages on each output page:</P>
|
|
|
|
<UL>
|
|
<LI><CODE>-o number-up-layout=btlr</CODE>; Bottom to top, left to right</LI>
|
|
<LI><CODE>-o number-up-layout=btrl</CODE>; Bottom to top, right to left</LI>
|
|
<LI><CODE>-o number-up-layout=lrbt</CODE>; Left to right, bottom to top</LI>
|
|
<LI><CODE>-o number-up-layout=lrtb</CODE>; Left to right, top to bottom (default)</LI>
|
|
<LI><CODE>-o number-up-layout=rlbt</CODE>; Right to left, bottom to top</LI>
|
|
<LI><CODE>-o number-up-layout=rltb</CODE>; Right to left, top to bottom</LI>
|
|
<LI><CODE>-o number-up-layout=tblr</CODE>; Top to bottom, left to right</LI>
|
|
<LI><CODE>-o number-up-layout=tbrl</CODE>; Top to bottom, right to left</LI>
|
|
</UL>
|
|
|
|
<H3><A NAME="FIT_TO_PAGE">Scaling to Fit</A></H3>
|
|
|
|
<P>The <CODE>-o fit-to-page</CODE> option specifies that the document
|
|
should be scaled to fit on the page:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp -o fit-to-page filename
|
|
lpr -o fit-to-page filename
|
|
</PRE>
|
|
|
|
<P>The default is to use the size specified in the file.</P>
|
|
|
|
<BLOCKQUOTE><B>Note:</B>
|
|
|
|
<P>This feature depends upon an accurate size in
|
|
the print file. If no size is given in the file, the page may be
|
|
scaled incorrectly!
|
|
|
|
</BLOCKQUOTE>
|
|
|
|
<H3><A NAME="OUTPUTORDER">Printing in Reverse Order</A></H3>
|
|
|
|
<P>The <CODE>-o outputorder=reverse</CODE> option will print the
|
|
pages in reverse order:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp -o outputorder=reverse filename
|
|
lpr -o outputorder=reverse filename
|
|
</PRE>
|
|
|
|
<P>Similarly, the <CODE>-o outputorder=normal</CODE> option will
|
|
print starting with page 1:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp -o outputorder=normal filename
|
|
lpr -o outputorder=normal filename
|
|
</PRE>
|
|
|
|
<P>The default is <CODE>-o outputorder=normal</CODE> for
|
|
printers that print face down and <CODE>-o outputorder=reverse</CODE>
|
|
for printers that print face up.
|
|
|
|
<H3><A NAME="MIRROR">Printing Mirrored Pages</A></H3>
|
|
|
|
<P>The <CODE>-o mirror</CODE> option flips each page along the
|
|
vertical axis to produce a mirrored image:</P>
|
|
|
|
<PRE CLASS="command">
|
|
lp -o mirror filename
|
|
lpr -o mirror filename
|
|
</PRE>
|
|
|
|
<P>This is typically used when printing on T-shirt transfer
|
|
media or sometimes on transparencies.</P>
|
|
|
|
</BODY>
|
|
</HTML>
|