如何使用 LP 打印命令添加打印机描述
- 在打印服务器上以超级用户 lp 或同等角色的身份登录。
- 添加打印机描述。
- -p printer-name
指定要为其添加描述的打印机的名称。
- -D "comment"
指定打印机的特征,如位置或管理联系人。将 shell 可能解释的字符(如 *、?、\、!、^)用单引号引起来。
有关更多信息,请参见 lpadmin(1M) 手册页。
- 验证 Description 信息是否正确。
示例 6-1 添加打印机描述
以下示例说明如何为打印机 luna 添加打印机描述。
如何使用 LP 打印命令设置系统的缺省打印机目标
- 在要在其中设置缺省打印机的系统上以超级用户 lp 或同等角色的身份登录。
- 设置系统的缺省打印机。
-d printer-name 指定要用作系统缺省打印机的打印机的名称。如果您不指定 printer-name,则系统将设置为没有缺省打印机。
- 检查系统的缺省打印机。
示例 6-2 设置系统的缺省打印机目标
以下示例说明如何将打印机 luna 设置为系统的缺省打印机。如果未设置 LPDEST 或 PRINTER 环境变量,则将打印机 luna 用作系统的缺省打印机。
如何使用 LP 打印命令使标题页成为可选
- 在打印服务器上以超级用户 lp 或同等角色的身份登录。
- 使标题页成为可选。
- -p printer-name
指定要使其标题页成为可选的打印机的名称。
- -o banner=optional
使用户可以在提交打印请求时不指定标题页。
- 验证标题页是否可选。命令输出包含以下行:Banner not required。
示例 6-3 使标题页成为可选
以下示例说明如何在打印机 luna 上使标题页成为可选。
如何使用 LP 打印命令关闭标题页
- 在打印服务器上以超级用户 lp 或同等角色的身份登录。
- 关闭标题打印。
- -p printer-name
指定要关闭其标题页的打印机的名称。
- -o banner=never
在所有情况下禁用标题页打印。
- 验证标题打印是否已关闭。
命令输出包含以下行:Banner not printed。
- 向打印机提交打印请求以确保不打印标题页。
示例 6-4 关闭标题页的打印
以下示例说明如何在打印机 luna 上禁用标题页的打印。
使用 LP 打印命令设置打印机故障警报
如果选择此任务,则 LP 打印服务可以在检测到打印机故障时通知您。通过 lpadmin -A 命令或 Oracle Solaris Print Manager,可以选择以下任一方法来接收打印机故障通知:
向 root 登录的终端发送消息
向 root 发送电子邮件
不发送任何通知
但是,lpadmin -A 命令为您提供了接收所选程序指定的消息的其他选项。通过 lpadmin -A 命令,您还可以有选择地关闭已知错误的通知。
除非指定一个程序传送故障通知,否则故障警报的内容是预定义的消息,该消息指明打印机已停止打印并需要进行修理。
下表列出了可以使用 lpadmin -A 命令为打印机设置的警报值。也可以为打印轮、字体盒和表单设置这些警报值。
表 6-4 打印机故障警报值
|
如何使用 LP 打印命令为打印机设置故障警报
示例 6-6 设置打印机的故障警报
以下示例说明如何设置打印机 mars,以将故障警报通过电子邮件发送到名为 joe 的用户。每隔 5 分钟发送一次提醒。
以下示例说明如何设置打印机 venus,以将故障警报发送到控制台窗口。每隔 10 分钟发送一次提醒。
以下示例说明如何停止打印机 mercury 的故障警报。
以下示例说明如何在修复打印机 venus 故障之前停止故障警报。
使用 LP 打印命令设置打印机故障恢复
如果您选择不发送任何故障通知,仍可以找出有关打印机故障的原因并更正问题。LP 打印服务不会继续使用有故障的打印机。除打印机故障警报外,您还可以在打印请求需要时,提供指示装载打印轮、字体盒和表单的警报。
您只能使用 lpadmin -F 命令来定义打印机的故障恢复选项。此任务在 Oracle Solaris Print Manager 中不可用。
打印机故障可能很简单,如纸张不足或者需要更换碳粉盒等。更严重的问题可能包括打印机整体故障或电源故障。
修复打印机故障后,在出现故障时处于活动状态的打印请求将采用以下三种方式之一开始打印:
从头开始打印
从打印停止时所在页的顶部继续打印
启用打印机后,从打印停止时所在页的顶部继续打印
LP 打印服务需要有单独的打印过滤器,才能从打印停止时所在页的顶部继续打印。此打印过滤器记录由缺省打印过滤器设置的控制序列。打印机使用这些控制序列跟踪页边界。如果使用指定的打印过滤器无法进行恢复,则 LP 打印服务将通知您。有关创建打印过滤器的信息,请参见如何创建新的打印过滤器。
如果您希望在修复打印机故障之后立即恢复打印,请通过使用 enable 命令启用打印机。
下表列出了可以使用 lpadmin -F 命令为打印机设置的故障恢复值。
表 6-5 打印机故障恢复值
|
如何使用 LP 打印命令设置打印机故障恢复
- 在打印服务器上以超级用户 lp 或同等角色的身份登录。
- 为打印机设置故障恢复。
- -p printer-name
指定要为其指定故障恢复的打印机的名称。
- -F recovery-options
指定以下三个有效恢复选项之一: beginning 、continue 或 wait。
有关更多信息,请参见 lpadmin(1M) 手册页。
- 验证是否正确设置了打印机故障恢复。
示例 6-7 设置打印机故障恢复
以下示例说明如何设置打印机 luna,以从打印停止时所在页的顶部继续打印。
使用 LP 打印命令限制用户对打印机的访问
您可以控制哪些用户可以访问某些打印机或所有可用打印机。例如,您可以禁止一些用户在高品质打印机上打印,以便最大限度地减少开支。要限制用户对打印机的访问,可以通过在打印服务器上使用 lpadmin -u 命令创建 allow 和 deny 列表。通过 Oracle Solaris Print Manager 仅能创建 allow 列表。如果不创建上述任一列表,则打印机对所有可对其进行访问的用户均可用。
allow 列表包含允许访问指定打印机的用户的名称。deny 列表包含被拒绝访问指定打印机的用户的名称。
allow 和 deny 列表的规则在下表中进行了说明。
|
由于打印服务器负责控制对打印机的访问,因此只能在打印服务器上创建 allow 和 deny 列表。如果创建 allow 和 deny 列表,则打印服务器将以排它方式控制用户对打印机的访问。
下表列出了可以添加到 allow 列表或 deny 列表中以用于限制用户对打印机的访问的值。
表 6-6 允许列表和拒绝列表的值
|
如何使用 LP 打印命令限制用户对打印机的访问
- 在打印服务器上以超级用户 lp 或同等角色的身份登录。
- 允许或拒绝用户访问打印机。
- -p printer-name
指定对其应用 allow 或 deny 访问列表的打印机的名称。
- -u allow:user-list
指定要添加到 allow 访问列表的用户名。您可以使用此命令指定多个用户名。使用空格或逗号来分隔名称。如果使用空格,请用引号将名称列表引起来。
- -u deny:user-list
指定要添加到拒绝用户访问列表的用户名。您可以使用此命令指定多个用户名。使用空格或逗号来分隔名称。如果使用空格,请用引号将名称列表引起来。
指定的用户将会添加到打印服务器上以下某个文件中打印机的 allow 或 deny 列表中:
注 - 如果将 none 指定为 allow 列表中 user-list 的值,则在打印服务器上不会创建以下文件:
- 验证以下命令输出中 Users allowed 或 Users denied 标题下的信息是否正确:
示例 6-8 限制用户对打印机的访问
以下示例说明如何仅允许用户 nathan 和 george 访问打印机 luna。
以下示例说明如何拒绝用户 nathan 和 george 访问打印机 asteroid。
LP 打印服务
本节介绍 LP 打印服务的目录结构、文件和日志。
LP 打印服务命令
注 - LP 打印服务客户机命令已经过修改,可以使用 FSG OpenPrinting 开放标准打印 API (Print API, PAPI)。这些打印命令位于 PAPI 的上面一层。有关更多信息,请参见PAPI 在 Oracle Solaris OS 中的实现方式。
下表列出经常使用的 LP 打印服务命令。
表 12-2 LP 打印服务命令
|
有关已经过修改可用于 PAPI 的打印命令的信息,请参见PAPI 在 Oracle Solaris OS 中的实现方式。
LP 打印服务的功能
LP 打印服务可执行以下功能:
管理文件和调度本地打印请求
接收和调度网络请求
如有必要,过滤文件,以便正确打印它们
启动作为打印机接口的程序
跟踪打印作业的状态
跟踪打印机上挂载的表单
跟踪当前挂载的打印轮
传送要求挂载新表单或其他打印轮的警报
传送有关打印问题的警报
守护进程和 LP 内部文件
/usr/lib/lp 目录包含由 LP 打印服务使用的守护进程和文件,如下表所述。
表 12-3 /usr/lib/lp 目录的内容
|
LP 打印服务目录
表 12-4 LP 打印服务的目录
|
LP 打印服务配置文件
lpsched 守护进程在 /etc/lp 目录中存储配置信息,如下表所述。
表 12-5 /etc/lp 目录的内容
|
这些配置文件提供与基于 LPD 的打印服务器上的 /etc/printcap 文件类似的功能。
注 - 您可以检查配置文件的内容,但是不应直接编辑这些文件,而应改用 lpadmin 命令进行配置更改。更改将写入 /etc/lp 目录中的配置文件。lpsched 守护进程可管理和更新配置文件。
/etc/lp/printers 目录包含系统可识别的每个本地打印机的子目录。以下示例显示了打印机 sparc1 和 luna 的 /etc/lp/printers 子目录。
下表介绍了每个打印机特定的目录内的文件。
|
打印机 luna 的配置文件 /etc/lp/printers/luna/configuration 通常如下所示:
terminfo 数据库
/usr/share/lib 目录包含 terminfo 数据库目录。此目录包含许多类型的终端和打印机的定义。LP 打印服务使用 terminfo 数据库中的信息执行以下任务:
初始化打印机
建立选定的页面大小、字符间距、行间距和字符集
将代码序列传送到打印机
每台打印机在 terminfo 数据库中使用短名称标识。如有必要,可以向 terminfo 数据库中添加一些项,但是这样做很单调乏味且很耗时。有关更多信息,请参见为不支持的打印机添加 terminfo 项。
terminfo 数据库中的打印机名称
有关每种打印机类型的信息存储在 terminfo 数据库 (/usr/share/lib/terminfo) 中。此信息包括打印机功能和初始化控制数据。您安装的打印机必须对应于 terminfo 数据库中的项。
每个子目录都包含终端或打印机的已编译数据库项。这些项按打印机或终端类型的第一个字母进行组织。例如,如果具有 Epson 打印机,则在 /usr/share/lib/terminfo/e 目录中查找,以找出特定型号的 Epson 打印机。
Epson 打印机的项以 epson 开头。
如果具有 NEC 打印机,则在 /usr/share/lib/terminfo/n 目录中查找 NEC 打印机型号。
此目录中的 nec 项用于 NEC 打印机。
打印机必需的 terminfo 项
以下三个表列出打印机必需的 terminfo 项。
表 12-6 打印机的必需 terminfo 项(布尔值)
|
表 12-7 打印机的必需 terminfo 项(数字)
|
表 12-8 打印机的必需 terminfo 项(字符串)
|
LP 打印服务日志文件
|
打印队列日志
每个系统的调度程序都将打印请求日志保留在 /var/spool/lp/tmp/system 和 /var/spool/lp/requests/system 目录中。每个打印请求都有两个文件,用于包含有关请求的信息,每个目录中各有一个文件。只有超级用户或 lp 才能访问 /var/spool/lp/requests/system 目录中的信息。只有已提交请求的用户、超级用户或 lp 才能访问 /var/spool/lp/tmp/system 目录中的信息。
以下示例显示了 /var/spool/lp/tmp/starbug 目录的内容:
只要打印请求排在队列中,这些文件就仅保留在其目录中。完成打印请求后,将对文件中的信息进行合并,并附加到 /var/lp/logs/requests 文件。此文件将在下一节中介绍。
如果需要跟踪当前队列中打印请求的状态,请使用 /var/spool/lp/logs 目录中的信息。
历史记录日志文件
LP 打印服务在以下两个日志文件中记录打印服务的历史记录:lpsched 和 requests。这些日志文件位于 /var/lp/logs 目录中。您可以使用这些日志文件中的信息诊断和排除打印故障。以下是 /var/lp/logs 目录内容的一个示例:
以下是用于排除故障的两个最重要的日志文件:
lpsched 日志文件-包含有关本地打印请求的信息。
requests 日志文件-包含有关已完成且已不在打印队列中的打印请求的信息。
requests 日志文件具有简单的结构,以便您可以使用常见的 UNIX shell 命令提取数据。请求将按其打印的顺序列出。另外,请求由显示其请求 ID 的行分隔。分隔行(以 = 开头的行)下方的每行标记有单个字母,以标识该行中所包含信息的种类。每个字母由单个空格与数据分隔开。
以下示例显示了 requests 日志文件的内容:
下表显示了 requests 日志文件中的字母代码及其对应行的内容。
表 12-9 requests 日志文件中的代码
|
下表显示了 LP requests 日志文件中的结果代码及其说明。
表 12-10 requests 日志文件中的结果代码
|
假脱机目录
排队打印的文件在打印之前存储在 /var/spool/lp 目录中,这可能仅需几秒。下表显示了 /var/spool/lp 目录的内容。
表 12-11 /var/spool/lp 目录的内容
|
过滤打印文件
打印过滤器是打印服务器上的程序,用于将已排队文件的内容从一种格式转换为另一种格式。
打印过滤器可以很简单,也可以很复杂,具体视需要而定。Oracle Solaris OS 在 /usr/lib/lp/postscript 目录中提供了打印过滤器,这些过滤器涵盖了目标打印机要求数据为 PostScript 格式的大多数情况。如果您需要用于非 PostScript 打印机的过滤器,则必须创建这些过滤器并将其添加到需要过滤器的系统。
/etc/lp/fd 目录中提供了一组打印过滤器描述符文件。这些描述符文件描述了过滤器的特征(例如,快速过滤器或慢速过滤器)。这些描述文件指向过滤器程序(例如,指向 /usr/lib/lp/postscript/postdaisy)。
打印机接口程序的工作原理
LP 打印服务与 Oracle Solaris OS 的其他部件进行交互。打印服务使用标准打印机接口程序执行以下操作:
初始化打印机端口(如有必要)。标准打印机接口程序使用 stty 命令初始化打印机端口。
初始化打印机。标准打印机接口程序使用 terminfo 数据库和 TERM shell 变量查找相应的控制序列。
打印标题页(如有必要)。
按打印请求指定的份数正确地打印。
LP 打印服务使用在 /usr/lib/lp/model 目录中找到的标准接口程序,除非您指定了其他程序。您可以创建定制接口程序。但是,必须确保定制程序不会终止与打印机的连接或干扰正常的打印机初始化。
Printing Files
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:
lp filename lpr filename
Choosing a Printer
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 lpstat(1) command to see a list of available printers:
lpstat -p -d
The -p
option specifies that you want to see a list of printers, and the -d
option reports the current default printer or class.
Use the -d
option with the lp command to print to a specific printer:
lp -d printer filename
or the -P
option with the lpr command:
lpr -P printer filename
Setting the Default Printer
If you normally use a particular printer, you can tell CUPS to use it by default using the lpoptions(1) command:
lpoptions -d printer
Printing Multiple Copies
Both the lp and lpr commands have options for printing more than one copy of a file:
lp -n num-copies filename lpr -#num-copies filename
Copies are normally not collated for you. Use the -o collate=true
option to get collated copies:
lp -n num-copies -o collate=true filename lpr -#num-copies -o collate=true filename
Canceling a Print Job
The cancel(1) and lprm(1) commands cancel a print job:
cancel job-id lprm job-id
The job-id is the number that was reported to you by the lp command. You can also get the job ID using the lpq(1) or lpstat commands:
lpq lpstat
Standard Printing Options
The following options apply when printing all types of files.
Selecting the Media Size, Type, and Source
The -o media=xyz
option sets the media size, type, and/or source:
lp -o media=Letter filename lp -o media=Letter,MultiPurpose filename lpr -o media=Letter,Transparency filename lpr -o media=Letter,MultiPurpose,Transparency filename
The available media sizes, types, and sources depend on the printer, but most support the following options (case is not significant):
Letter
- US Letter (8.5x11 inches, or 216x279mm)Legal
- US Legal (8.5x14 inches, or 216x356mm)A4
- ISO A4 (8.27x11.69 inches, or 210x297mm)COM10
- US #10 Envelope (9.5x4.125 inches, or 241x105mm)DL
- ISO DL Envelope (8.66x4.33 inches, or 220x110mm)Transparency
- Transparency media type or sourceUpper
- Upper paper trayLower
- Lower paper trayMultiPurpose
- Multi-purpose paper trayLargeCapacity
- Large capacity paper tray
The actual options supported are defined in the printer's PPD file in the PageSize
, InputSlot
, and MediaType
options. You can list them using the lpoptions(1) command:
lpoptions -p printer -l
When Custom
is listed for the PageSize
option, you can specify custom media sizes using one of the following forms:
lp -o media=Custom.WIDTHxLENGTH filename lp -o media=Custom.WIDTHxLENGTHin filename lp -o media=Custom.WIDTHxLENGTHcm filename lp -o media=Custom.WIDTHxLENGTHmm filename
where "WIDTH" and "LENGTH" are the width and length of the media in points, inches, centimeters, or millimeters, respectively.
Setting the Orientation
The -o landscape
option will rotate the page 90 degrees to print in landscape orientation:
lp -o landscape filename lpr -o landscape filename
The -o orientation-requested=N
option rotates the page depending on the value of N:
-o orientation-requested=3
- portrait orientation (no rotation)-o orientation-requested=4
- landscape orientation (90 degrees)-o orientation-requested=5
- reverse landscape or seascape orientation (270 degrees)-o orientation-requested=6
- reverse portrait or upside-down orientation (180 degrees)
Printing On Both Sides of the Paper
The -o sides=two-sided-short-edge
and -o sides=two-sided-long-edge
options will enable two-sided printing on the printer if the printer supports it. The -o sides=two-sided-short-edge
option is suitable for landscape pages, while the -o sides=two-sided-long-edge
option is suitable for portrait pages:
lp -o sides=two-sided-short-edge filename lp -o sides=two-sided-long-edge filename lpr -o sides=two-sided-long-edge filename
The default is to print single-sided:
lp -o sides=one-sided filename lpr -o sides=one-sided filename
Selecting the Banner Page(s)
The -o job-sheets=start,end
option sets the banner page(s) to use for a job:
lp -o job-sheets=none filename lp -o job-sheets=standard filename lpr -o job-sheets=classified,classified filename
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.
The available banner pages depend on the local system configuration; CUPS includes the following banner files:
none
- Do not produce a banner page.classified
- A banner page with a "classified" label at the top and bottom.confidential
- A banner page with a "confidential" label at the top and bottom.secret
- A banner page with a "secret" label at the top and bottom.standard
- A banner page with no label at the top and bottom.topsecret
- A banner page with a "top secret" label at the top and bottom.unclassified
- A banner page with an "unclassified" label at the top and bottom.
没有评论:
发表评论