本章介绍如何使用 LP 打印命令管理打印机。
下面列出了本章中的信息:
有关打印的概述信息,请参见第 1 章。
为网络中的打印机设置定义是一项渐进的任务,它允许您为用户提供更有效的打印环境。例如,可以为站点的所有打印机指定打印机描述,以帮助用户查找打印机所在的位置。或者,您可以定义一类打印机,为打印请求提供最快的处理速度。有关使用 LP 打印命令设置打印机定义的更多信息,请参见设置打印机时指定 PPD 文件。
许多打印机定义可以使用 Solaris Print Manager 进行设置或重置。有关更多信息,请参见使用 Solaris Print Manager 设置打印机定义。
以下过程提供了有关使用 LP 打印命令设置或重置打印机定义的逐步说明。这些过程显示如何快速设置或重置打印机定义。
# lpadmin -p printer-name -D "comment" |
指定要为其添加描述的打印机的名称。
指定打印机的特征,如位置或管理联系人。将 shell 可能解释的字符(如 *、?、\、!、^)用单引号引起来。
有关更多信息,请参见 lpadmin(1M) 手册页。
验证 Description 信息是否正确。
# lpstat -p printer-name -l |
以下示例说明如何为打印机 luna 添加打印机描述。
# lpadmin -p luna -D "Nathans office" |
您可以为用户指定缺省打印机目标,以便用户在使用打印命令时无需键入打印机名称。在将一台打印机指定为缺省打印机之前,系统上的打印服务必须可识别该打印机。
通过设置以下任一项来设置用户的缺省打印机目标:
LPDEST 环境变量
PRINTER 环境变量
用户的 .PRINTERS 文件中的 _default 变量
系统的缺省打印机(通过使用 lpadmin -d 命令或 Solaris Print Manager)
当应用程序提供打印机目标时,打印服务将使用该目标,而不管您是否设置了系统的缺省打印机目标。如果应用程序未提供打印机目标,或者您在使用打印命令时未提供打印机名称,则打印命令将按特定顺序搜索缺省打印机。下表显示系统缺省打印机目标的搜索顺序。
表 6–2 缺省打印机目标的搜索顺序
搜索顺序 |
使用 /usr/bin/lp 命令 |
使用基于 LPD 的兼容命令(lpr、lpq 和 lprm) |
---|---|---|
第一 |
LPDEST 变量 |
PRINTER 变量 |
第二 |
PRINTER 变量 |
LPDEST 变量 |
第三 |
系统的缺省打印机 |
系统的缺省打印机 |
# lpadmin -d [printer-name] |
-d printer-name 指定要用作系统缺省打印机的打印机的名称。如果您不指定 printer-name,则系统将设置为没有缺省打印机。
检查系统的缺省打印机。
# lpstat -d |
以下示例说明如何将打印机 luna 设置为系统的缺省打印机。如果未设置 LPDEST 或 PRINTER 环境变量,则将打印机 luna 用作系统的缺省打印机。
# lpadmin -d luna # lpstat -d system default destination: luna |
标题页标识提交打印请求的用户、对应的打印请求 ID 以及何时打印该请求。标题页还具有可修改的标题,以帮助用户标识其打印输出。
通过标题页可以很方便地确定打印作业的拥有者,这在许多用户将作业提交到同一打印机时特别有帮助。但是,打印标题页会使用更多的纸张,在打印机仅有几个用户时可能是不必要的。在某些情况下,不需要打印标题页。例如,如果打印机中装有特殊纸张或表单(如工资表),则打印标题页可能会导致问题。
缺省情况下,打印服务会强制打印标题页。但是,您可以使用户选择在提交打印请求时关闭标题页的打印。您可以通过 lpadmin 命令或 Solaris Print Manager 设置此选择。如果您为用户提供了选择,则他们必须使用 -o banner 选项关闭标题页的打印。
此外,如果您不需要标题页,则可以关闭标题页以便从不打印它们。您可以通过使用 lpadmin 命令或通过 Solaris Print Manager 关闭标题页的打印。
下表说明用于管理标题页打印的命令选项。
表 6–3 标题页打印
所用命令 |
标题页打印 |
是否覆盖? |
---|---|---|
lpadmin -p printer -o banner 或 lpadmin -p printer -o banner=always |
必需且打印 |
如果您是常规用户并使用 -o nobanner,则打印请求。但是,忽略 nobanner 参数。 如果您是超级用户 (root) 或其他特权用户,则不忽略 nobanner 参数。 |
lpadmin -p printer -o nobanner lpadmin -p printer -o banner=optional |
缺省情况下启用,但是可以使用 lp -o nobanner 命令基于每个请求进行禁用 |
不适用 |
lpadmin -p printer -o banner=never |
Disabled |
如果您是常规用户,则不可以。如果您是超级用户 (root) 或 lp 用户,则可以覆盖此选项以导致生成成组传送页。 |
使标题页成为可选。
# lpadmin -p printer-name -o banner=optional |
指定要使其标题页成为可选的打印机的名称。
使用户可以在提交打印请求时不指定标题页。
验证标题页是否可选。命令输出包含以下行:Banner not required。
# lpstat -p printer-name -l |
以下示例说明如何在打印机 luna 上使标题页成为可选。
# lpadmin -p luna -o banner=optional |
关闭标题打印。
# lpadmin -p printer-name -o banner=never |
指定要关闭其标题页的打印机的名称。
在所有情况下禁用标题页打印。
验证标题打印是否已关闭。
# lpstat -p printer-name -l |
命令输出包含以下行:Banner not printed。
向打印机提交打印请求以确保不打印标题页。
以下示例说明如何在打印机 luna 上禁用标题页的打印。
# lpadmin -p luna -o banner=never |
通过 LP 打印服务,您可以将在本地连接的若干打印机归为一类。您只能通过使用 lpadmin -c 命令执行此任务。
设置打印机类后,用户可以将该类而不是单台打印机指定为打印请求的目标。此时会使用该类中可用于打印的第一台打印机。这样,就可充分地利用各台打印机,从而更快地完成打印过程。
打印服务不能识别任何缺省打印机类。打印机类仅在对其进行定义后才存在。
下面是定义打印机类的一些方法:
按打印机类型-例如,PostScript 打印机。
按位置-例如,位于 5 楼的打印机。
按工作组或部门-例如,会计部。
或者,一个类可能包含按特定顺序使用的若干台打印机。LP 打印服务始终按打印机添加到类的顺序来检查是否存在可用的打印机。因此,如果要首先访问高速打印机,请先向类中添加高速打印机,然后再添加低速打印机。因此,高速打印机可处理尽可能多的打印请求。在使用高速打印机时,低速打印机保留为备用打印机。
仅在本地打印机类中的打印机之间才能平衡打印请求。
与打印机名称类似,类名必须是唯一的,并且最多可以包含 14 个字母数字字符和下划线。
并非必须定义打印机类。仅当您确定使用打印机类对网络上的用户有益时,才应该添加它们。
# lpadmin -p printer-name -c printer-class |
指定要添加到一类打印机中的打印机的名称。
指定一类打印机的名称。
验证打印机是否属于某个打印机类。
# lpstat -c printer-class |
以下示例说明如何在打印机类 roughdrafts 中添加打印机 luna。
# lpadmin -p luna -c roughdrafts |
如果选择此任务,则 LP 打印服务可以在检测到打印机故障时通知您。通过 lpadmin -A 命令或 Solaris Print Manager,您可以选择以下任一方法来接收打印机故障通知:
向 root 登录的终端发送消息
向 root 发送电子邮件
不发送任何通知
但是,lpadmin -A 命令为您提供了接收所选程序指定的消息的其他选项。通过 lpadmin -A 命令,您还可以有选择地关闭已知错误的通知。
除非指定一个程序传送故障通知,否则故障警报的内容是预定义的消息,该消息指明打印机已停止打印并需要进行修理。
下表列出了可以使用 lpadmin -A 命令为打印机设置的警报值。也可以为打印轮、字体盒和表单设置这些警报值。
表 6–4 打印机故障警报值
-A alert 的值 |
说明 |
---|---|
'mail [username]' |
通过电子邮件将警报消息发送到打印服务器上的 root 或 lp,或者发送到指定的 username(它是用户的名称)。 |
'write [user-name]' |
将警报消息发送到打印服务器上的 root 或 lp 控制台窗口,或者发送到指定 username(它是用户的名称)的控制台窗口。指定的用户必须登录到打印服务器才能获取警报消息。 |
'command' |
运行每个警报的指定 command 文件。在执行该文件时,保存并恢复环境变量和当前目录。 |
quiet |
在修复故障之前停止警报。当您、root 或指定用户收到重复警报时使用该值。 |
none |
不发送任何警报。如果您不指定打印机的故障警报,则该值为缺省值。 |
以下示例说明如何设置打印机 mars,以将故障警报通过电子邮件发送到名为 joe 的用户。每隔 5 分钟发送一次提醒。
# lpadmin -p mars -A 'mail joe' -W 5 |
以下示例说明如何设置打印机 venus,以将故障警报发送到控制台窗口。每隔 10 分钟发送一次提醒。
# lpadmin -p venus -A write -W 10 |
以下示例说明如何停止打印机 mercury 的故障警报。
# lpadmin -p mercury -A none |
以下示例说明如何在修复打印机 venus 故障之前停止故障警报。
# lpadmin -p venus -A quiet |
如果您选择不发送任何故障通知,仍可以找出有关打印机故障的原因并更正问题。LP 打印服务不会继续使用有故障的打印机。除打印机故障警报外,您还可以在打印请求需要时,提供指示装载打印轮、字体盒和表单的警报。
您只能使用 lpadmin -F 命令来定义打印机的故障恢复选项。此任务在 Solaris Print Manager 中不可用。
打印机故障可能很简单,如纸张不足或者需要更换碳粉盒等。更严重的问题可能包括打印机整体故障或电源故障。
修复打印机故障后,在出现故障时处于活动状态的打印请求将采用以下三种方式之一开始打印:
从头开始打印
从打印停止时所在页的顶部继续打印
启用打印机后,从打印停止时所在页的顶部继续打印
LP 打印服务需要有单独的打印过滤器,才能从打印停止时所在页的顶部继续打印。此打印过滤器记录由缺省打印过滤器设置的控制序列。打印机使用这些控制序列跟踪页边界。如果使用指定的打印过滤器无法进行恢复,则 LP 打印服务将通知您。有关编写过滤器的信息,请参见如何创建新的打印过滤器。
如果您希望在修复打印机故障之后立即恢复打印,请通过使用 enable 命令启用打印机。
下表列出了可以使用 lpadmin -F 命令为打印机设置的故障恢复值。
表 6–5 打印机故障恢复值
-F recover-options 的值 |
说明 |
---|---|
beginning |
在故障恢复之后,从文件开头重新开始打印。 |
continue | |
wait |
在故障恢复之后,打印停止,直到您启用打印机。在通过使用 enable 命令启用打印机之后,从打印停止时所在页的顶部开始打印。此恢复选项需要打印过滤器。 |
在打印服务器上以超级用户 lp 或同等角色的身份登录。
# lpadmin -p printer-name -F recovery-options |
指定要为其指定故障恢复的打印机的名称。
指定以下三个有效恢复选项之一: beginning 、continue 或 wait。
有关更多信息,请参见 lpadmin(1M) 手册页。
验证是否正确设置了打印机故障恢复。
# lpstat -p printer-name -l |
以下示例说明如何设置打印机 luna,以从打印停止时所在页的顶部继续打印。
# lpadmin -p luna -F continue |
您可以控制哪些用户可以访问某些打印机或所有可用打印机。例如,您可以禁止一些用户在高品质打印机上打印,以便最大限度地减少开支。要限制用户对打印机的访问,可以通过在打印服务器上使用 lpadmin -u 命令创建 allow 和 deny 列表。通过 Solaris Print Manager 仅能创建 allow 列表。如果不创建上述任一列表,则打印机对所有可对其进行访问的用户均可用。
allow 列表包含允许访问指定打印机的用户的名称。deny 列表包含被拒绝访问指定打印机的用户的名称。
allow 和 deny 列表的规则在下表中进行了说明:
允许列表和拒绝列表的规则 |
用户结果 |
---|---|
不创建 allow 和 deny 列表。或者,如果将这两个列表保留为空。 |
所有用户均可以访问打印机。 |
在 allow 列表中指定 all。 |
所有用户均可以访问打印机。 |
在 deny 列表中指定 all |
拒绝服务器上除 root 和 lp 用户之外的所有用户访问打印机。 |
在 allow 列表中建立任何项。 |
忽略 deny 列表。仅有列出的用户才能访问打印机。 |
创建拒绝列表,但是不创建 allow 列表或者将 allow 列表保留为空。 |
拒绝 deny 列表中列出的用户访问打印机。 |
由于打印服务器负责控制对打印机的访问,因此只能在打印服务器上创建 allow 和 deny 列表。如果创建 allow 和 deny 列表,则打印服务器将以排它方式控制用户对打印机的访问。
下表列出了可以添加到 allow 列表或 deny 列表中以用于限制用户对打印机的访问的值。
表 6–6 允许列表和拒绝列表的值
user-list 的值 |
说明 |
---|---|
user |
任何系统上的 User |
all |
所有系统上的全部用户 |
none |
不包括任何系统上的用户 |
system!user |
仅 system 上的 User |
!user |
仅本地系统上的 User |
all!user |
任何系统上的 User |
all!all |
所有系统上的全部用户 |
system!all |
system 上的所有用户 |
!all |
本地系统上的所有用户 |
# lpadmin -p printer-name -u allow:user-list [deny:user-list] |
指定对其应用 allow 或 deny 访问列表的打印机的名称。
指定要添加到 allow 访问列表的用户名。您可以使用此命令指定多个用户名。使用空格或逗号来分隔名称。如果使用空格,请用引号将名称列表引起来。
指定要添加到拒绝用户访问列表的用户名。您可以使用此命令指定多个用户名。使用空格或逗号来分隔名称。如果使用空格,请用引号将名称列表引起来。
指定的用户将会添加到打印服务器上以下某个文件中打印机的 allow 或 deny 列表中:
如果将 none 指定为 allow 列表中 user-list 的值,则在打印服务器上不会创建以下文件:
验证以下命令输出中 Users allowed 或 Users denied 标题下的信息是否正确:
# lpstat -p printer-name -l |
以下示例说明如何仅允许用户 nathan 和 george 访问打印机 luna。
# lpadmin -p luna -u allow:nathan,george |
以下示例说明如何拒绝用户 nathan 和 george 访问打印机 asteroid。
# lpadmin -p asteroid -u deny:"nathan george" |
任务 |
说明 |
说明 |
---|---|---|
为使用 PPD 文件的打印队列设置定义。 |
使用带有 -o 选项的 lpadmin 命令,修改在与打印队列关联的 PPD 文件中定义的缺省值。 | |
确定是否已使用 PPD 文件创建打印队列。 |
使用 lpstat 命令,确定是否已使用 PPD 文件创建打印队列,或 PPD 文件是否与打印队列关联。 |
在设置打印队列的过程中,可以将描述打印队列功能的 PPD 文件与该打印队列关联。PPD 文件中描述的缺省值通常与您站点的首选设置不匹配。例如,您可能希望始终打开双工功能,或者您可能希望始终打印到 A4 大小的纸张。要修改这些缺省值,可以直接编辑 PPD 文件。但是,最简单、最快速的方法是使用带有 -o 选项的 lpadmin 命令进行更改。
一些常见的 PPD 文件值包括:
PageSize
可用选项示例包括:
字母
Legal
A4
B5
Env10
InputSlot
可用选项示例包括:
Tray1
Tray2
Tray3
Manual
Duplex
可用选项示例包括:
无
DuplexNoTumble
DuplexTumble
此过程说明如何为使用 PPD 文件描述其功能的打印队列设置缺省值。
首先检查 PPD 文件以确定可以覆盖哪些值。要查看有关 PPD 文件的信息,请使用 more 或 less 命令,或者在文本编辑器中打开该文件。
例如:
$ more /etc/lp/ppd/print-queue.ppd |
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
设置所需选项。
# lpadmin -p print-queue -o key=value |
指定要更改其中值的打印机名称或打印队列。
指定用于调整打印机功能、调整打印机端口特征、配置网络打印机和控制标题使用的选项。
指定选项的键/值对。
可用于特定打印机的键/值对取决于与打印队列关联的 PPD 文件的内容。
例如,要设置双工功能,请键入:
# lpadmin -p print-queue -o Duplex=DuplexNoTumble |
要更改进纸盒设置,请键入:
# lpadmin -p print-queue -o InputSlot=Tray2 |
可以使用此方法为任何 PPD file/foomatic 选项设置缺省值。
通过检查打印队列的功能,验证选项是否设置为正确的值。
# lpstat -p print-queue -l |
# lpadmin -p hp4550 -o Media=A4 -o InputSlot=Tray2 # lpadmin -p hp4550 -o PageSize=A4 # lpstat -p hp4550 -l printer hp4550 idle. enabled since December 5, 2006 6:38:50 PM CET. available. Form mounted: Content types: application/postscript Description: Connection: Interface: /usr/lib/lp/model/netstandard_foomatic PPD: /usr/lib/lp/model/ppd/system/foomatic/ \ HP/HP-Color_LaserJet_4550-Postscript.ppd.gz On fault: write root After fault: continue Users allowed: (all) Forms allowed: (none) Media supported: Letter A4 11x17 A3 A5 B5 Env10 EnvC5 EnvDL EnvISOB5 EnvMonarch Executive Legal Banner not required Character sets: (none) Default pitch: Default page size: Default port setting: Options: PageSize=A4, Media=A4, InputSlot=Tray2, \ dest=192.168.245.62:9100, protocol=tcp # uname -a SunOS shuttle 5.11 snv_52 i86pc i386 i86pc # lpstat -p hp4550 -l printer hp4550 idle. enabled since December 5, 2006 6:38:50 PM CET. available. Form mounted: Content types: application/postscript Description: Connection: Interface: /usr/lib/lp/model/netstandard_foomatic PPD: /usr/lib/lp/model/ppd/system/foomatic/ \ HP/HP-Color_LaserJet_4550-Postscript.ppd.gz On fault: write root After fault: continue Users allowed: (all) Forms allowed: (none) Media supported: Letter A4 11x17 A3 A5 B5 Env10 EnvC5 EnvDL EnvISOB5 EnvMonarch Executive Legal Banner not required Character sets: (none) Default pitch: Default page size: Default port setting: Options: dest=192.168.245.62:9100, protocol=tcp |
如果在创建打印队列时使用了 PPD 文件,则会在 lpstat 命令输出中列出配置给指定队列使用的 PPD 文件。如果在创建新的打印队列时不指定 PPD 文件,则 lpstat 命令将继续显示与以前相同的输出。有关表明使用了 PPD 文件的 lpstat 命令输出的示例,请参见如何检查打印机的状态。
在此示例中,lpstat 命令输出指示打印队列是通过使用 PPD 文件 Mitsubishi-CP50_Color_Printer-cp50.ppd.gz 配置的。
# lpstat -l -p paper printer paper is idle. enabled since Tue 30 Mar 2004 01:48:38 PM PST available. Form mounted: Content types: any Printer types: unknown Description: Connection: direct Interface: /usr/lib/lp/model/standard_foomatic PPD: /path/Mitsubishi-CP50_Color_Printer-cp50.ppd.gz After fault: continue Users allowed: (all) Forms allowed: (none) Banner required Character sets: (none) Default pitch: Default page size: Default port settings# lpstat l p <queue> |