系统管理指南:打印

使用 LP 打印命令设置网络连接的打印机

网络连接的打印机是直接连接到网络的硬件设备。可以从打印服务器访问此打印机,而不必通过电缆以物理方式将打印机连接到打印服务器。网络连接的打印机具有其自己的系统名称和 IP 地址。


注意 – 注意 –

不能在不使用队列配置的情况下在打印服务器上配置网络连接的打印机,否则会导致打印机配置错误。

可以使用 Solaris Print Manager 正确配置网络连接的打印机。选择“新的网络打印机”选项。或者,可以使用 lpadmin 命令正确配置网络连接的打印机。

请不要使用 lpadmin -p queue-name -s printer-name 命令或 Solaris Print Manager 的“添加对打印机的访问”选项来添加网络连接的打印机。这些方法应分别单独使用,以指向远程打印服务器上已经存在的队列。打印服务器能够对网络连接的打印机执行排队、过滤以及打印管理等操作。直接打印到网络连接的打印机会导致打印机配置错误,从而可能导致许多问题。此外,作业选项(如份数、成组传送页的使用或停用以及过滤)将丢失。


网络打印机可能会使用需要供应商提供的打印程序的一个或多个特殊协议。用于设置供应商提供的打印程序的过程可能有所不同。如果打印机未附带供应商提供的支持,则大多数设备都可以使用 Oracle Solaris 网络连接的打印机支持。如有可能,请使用打印机供应商提供的软件。

供应商可能会提供 SVR4 打印机接口脚本以替换标准打印机接口脚本。如果是这样,则该 SVR4 接口脚本会调用供应商提供的打印程序,将作业发送到打印机。如果不是这样,则需要修改标准接口脚本,以调用供应商提供的打印程序。为此,请编辑标准接口脚本的每打印机副本,以调用供应商提供的打印程序。

以下是网络连接的打印机配置中使用的术语。有关打印术语的完整说明,请参见词汇表

Oracle 对网络打印机的支持

如果网络打印机供应商不提供软件支持,则可使用 Oracle 提供的软件。该软件提供对网络打印机的通用支持,但不能提供对所有可能的打印机属性的完全访问。

使用 LP 打印命令设置网络连接的打印机中提供有关如何添加网络连接的打印机的常规讨论。以下是对使用 Oracle 提供的软件管理打印机的讨论。

调用网络打印机支持

网络打印机的软件支持是通过网络接口脚本 netstandard 调用的。使用此脚本配置网络连接的打印机会导致调用网络连接的打印机支持模块。以下是使用网络支持配置打印机的命令。


lpadmin -p printer-name -m netstandard 

选择打印机节点名称

选择打印机节点名称。与网络上的任何节点一样,此名称也必须是唯一的。打印机节点名称与打印机的 IP 地址相关联。

选择目标名称(也称为网络打印机访问名称)

打印子系统需要打印机的访问信息。子系统在与打印机建立网络连接时使用目标名称。使用 lpadmin 命令可以为打印子系统提供此名称。然后,此名称将成为打印机配置数据库的一部分。打印机访问名称是打印机节点的名称,该名称有时由端口名称限定。端口标识会因打印机供应商的不同而异。可以在打印机文档中找到有关端口标识的信息。

以下是打印机访问名称的格式:

printer-node-name[: port-designation]

可以采用以下三种形式之一指定目标名称:

原子(简单)

(目标)-通过在 printers.confprinters 配置数据库中查找已命名目标的 printer-uri-supported 密钥/值对,来进行解析。如果未找到某一项的 printer-uri-supported 密钥,则其 bsdaddr 值将转换为打印机 URI 格式并被使用。

有关更多信息,请参见 printers(4)printers.conf(4) 手册页。

打印机 URI

(scheme://endpoint)-已完整解析且指定用于联系打印服务的协议和通信端点。在访问系统当前管理域外部的打印服务时,这种形式的目标名称非常有用。由于该名称包括在联系打印服务时使用的协议,因此可以选择比 RFC-1179 协议更丰富的协议。

POSIX

(server:queue[:extensions])-完整且解析为 lpd://server/printers/queue[#extensions] 的等效打印机 URI 形式。保留此形式的目的只是为了实现向后兼容性。此打印机 URI 形式是首选的替换形式。


示例 5–6 带有端口标识(数字)的目标名称(或网络打印机访问名称)

使用 TCP 的通用端口标识是 9100。如果打印机节点名称是 pn1,并且打印机供应商将端口定义为 9100,则打印机访问名称是 pn1:9100。要在这种情况下配置打印机,请使用以下命令:


lpadmin -p printer_name -o dest=pn1:9100


示例 5–7 带有 BSD 端口标识(名称)的目标名称(或网络打印机访问名称)

使用 BSD 协议时,端口标识可能不是一个数字,而是由打印机供应商定义的某个名称,例如: xxx _parallel_1。如果打印机节点名称是 cardboard,则打印机访问名称是 cardboard:xxx_parallel_1。要在这种情况下配置打印机,请使用以下命令:


lpadmin -p printer-name -o dest=cardboard:xxx_parallel_1


示例 5–8 不带端口标识的目标名称(或网络打印机访问名称)

如果没有端口标识,并且打印机节点名称是 newspaper,则打印机访问名称即是打印机节点名称: newspaper。要在这种情况下配置打印机,请使用以下命令:


lpadmin -p printer-name -o dest=newspaper

选择网络打印协议

缺省情况下,LP 打印服务使用 BSD 打印协议和原始 TCP 与打印机进行通信。打印机供应商文档提供了有关要使用哪个协议的信息。通常,TCP 协议在打印机中更常用。


注 –

Solaris 10 5/08 发行版中引入了设备 URI 协议。通过此协议可以实现远程打印机访问。在使用 lpadmin 命令或使用 Solaris Print Manager 添加网络连接的打印机时,可以指定 device-uri


要选择 BSD 协议,请键入:


lpadmin -p printer-name -o protocol=bsd

要选择 TCP 协议,请键入:


lpadmin -p printer-name -o protocol=tcp

如果选择的协议是 BSD 打印协议,则可以进一步选择将控制文件发送到打印机的顺序。一些打印机要求先发送控制文件,再发送数据文件。其他打印机则正好相反。要了解此信息,请参见打印机供应商文档。缺省情况下,首先发送控制文件。

要选择顺序,请键入以下命令之一:


lpadmin -p printer-name -o bsdctrl=first

lpadmin -p printer-name -o bsdctrl=last

设置超时值

借助超时选项,用户可以选择在连接到打印机的连续尝试之间等待的时间(以秒为单位)。一些打印机的预热时间很长,因此建议使用较大的超时值。缺省值是 10 秒。

超时值对打印过程的成功或失败没有影响。该值是软件用作初始超时计数的种子值。如果一再失败,此计数将会增加。当连接到打印机的尝试一再失败时,将向假脱机程序发送一条消息。此消息提醒用户可能需要进行干预。故障可能是打印机被关闭或打印机缺纸等任何情况。如果过于频繁地生成这些消息(例如在预热打印机时),则增加超时值将消除伪消息。

可以通过试验找出最佳的超时值。请键入以下命令以设置超时值:


lpadmin -p printer-name -o timeout=n

管理网络连接的打印机访问

每台网络连接的打印机都应该仅有一台提供对打印机的访问的服务器。通过此限制,服务器可以管理对打印机的访问并使作业保持连贯。

网络连接的打印机的缺省设备是 /dev/null。当打印机仅有一个队列时,此设备已足够。如果需要多个队列,则将该设备设置为一个文件。通过此设置,打印系统可以限制跨队列对打印机的访问。以下命令将创建一个设备文件,并将其配置为网络连接的打印机设备。


touch /path/filename
chmod 600 /path/filename
lpadmin -p printer-name -v /path/filename

下面举例说明如何创建名为 devtreedown 的设备文件。


# touch /var/tmp/devtreedown
# chmod 600 /var/tmp/devtreedown
# lpadmin -p treedown -v /var/tmp/devtreedown

Procedure如何使用 LP 打印命令添加新的网络连接的打印机

本过程介绍如何添加具有扩展打印机支持的新的网络连接的打印机,该过程可在其配置过程中关联 PPD 文件。此过程后面有两个示例。第一个示例演示如何通过 lp 命令在使用 PPD 文件的情况下添加新的网络连接的打印机。第二个示例说明如何通过 lp 命令在不使用 PPD 文件的情况下添加新的网络打印机。

以下步骤是使用网络打印机支持软件设置网络连接的打印机所必需的。如果打印机未附带供应商提供的软件,则应使用此软件。

  1. 将打印机连接到网络,然后打开打印机的电源。

    有关硬件交换机和布线要求的信息,请参阅打印机供应商的安装文档。获取 IP 地址并选择打印机节点的名称。此步骤等效于将任何节点添加到网络。

  2. 收集使用 PPD 文件配置新的网络连接的打印机所需的信息。

    • 打印机名称和端口设备

    • 网络打印机访问名称

    • 协议

    • 超时

    • 文件内容类型

    • PPD 文件

    要确定 PPD 文件,请首先定义打印机生产商、打印机型号和打印机将使用的驱动程序。

    有关更多信息,请参见使用 LP 打印命令设置网络连接的打印机中介绍的术语。

  3. 登录到打印服务器,并且成为超级用户或同等角色。

  4. 定义打印机名称以及打印机将使用的端口设备、文件内容类型和 PPD 文件。使用 PPD 文件时,文件内容类型通常为 PostScript。

    1. 指定打印机将使用的打印机名称和端口设备。


      # lpadmin -p printer-name -v /dev/null
      

      要使用的设备是 /dev/null

      可以在 lpadmin 命令中使用 -s 选项将打印服务主机名指定为 localhost。有关更多信息,请参见如何添加将 localhost 指定为主机名的打印队列(LP 打印命令)

      可以使用 -v 选项指定 device-uri。通过协议可以访问远程打印机。有关更多信息,请参见使用 Oracle Solaris 发行版中的打印协议

    2. 指定打印机将使用的接口脚本。


      # lpadmin -p printer-name -m netstandard_foomatic 
      

      网络连接的打印机的支持软件附带的接口脚本是 /usr/lib/lp/model/netstandard_foomatic

    3. 指定打印机将使用的文件内容类型和 PPD 文件。

      使用 PPD 文件时,文件内容类型通常为 PostScript。


      # lpadmin -p printer-name -I content-type -n 
      /path/ppdfile
      

      指定的 PPD 文件位于 /path 目录中。


      注 –

      如果 /path 并非系统上的 PPD 文件系统信息库,请将 PPD 文件的副本放在 user PPD 文件系统信息库中的 user 标签目录中。有关更多信息,请参见第 11 章


      有关更多信息,请参见 lpadmin(1M) 手册页。

    4. 指定打印机描述。


      # lpadmin -p printer-name -D  "printer-description"
      
  5. 设置打印机目标、协议和超时值。


    # lpadmin -p printer-name -o dest=access-name:port -o protocol=protocol
    -o timeout=value
    
    -p printer-name

    指定网络打印机名称。

    -o dest=access-name:port

    将打印机目标设置为网络打印机访问名称和指定的打印机供应商端口,前提是该端口是在打印机供应商文档中定义的。

    -o protocol=protocol

    设置用于与打印机进行通信的线上协议。同时支持 BSD 和原始 TCP。

    -o timeout=value

    设置一个重试超时值,该值表示在连接到打印机的两次尝试之间等待的秒数。

  6. (可选)将过滤器添加到打印服务器。


    # cd /etc/lp/fd
    # for filter in *.fd;do
        > name=`basename $ filter .fd`
        > lpfilter -f $name -F $ filter
        > done
    
  7. 启用打印机以接受打印请求并打印这些请求。


    # accept printer-name
    # enable printer-name
    
  8. 验证是否正确配置了打印机。


    # lpstat -p printer-name
    
  9. 添加对新打印机的客户机访问。

    在配置打印机后,为打印客户机创建对打印机的访问。有关更多信息,请参见使用 LP 打印命令添加打印机访问。有关如何使用命名服务定义打印客户机的信息,请参见命名服务转换器中的打印支持

  10. 完成任何可选的任务。

    设置打印机时,可能需要完成多个可选任务。有关剩余任务的指针,请参见配置 Internet 打印协议(任务图)。有关如何使用命名服务定义打印客户机的信息,请参见命名服务转换器中的打印支持


示例 5–9 通过指定 PPD 文件添加新的网络连接的打印机

此示例说明如何在使用 PPD 文件的情况下添加新的网络连接的打印机。使用 lpadmin 命令的 -n 选项,可以通过指定 PPD 文件来添加新的打印队列。此示例中使用的命令必须在打印服务器上执行。以下信息仅是一个示例。您提供的信息可能会有所不同。

  1. 定义打印机名称,并将设备设置为 /dev/null

  2. 定义网络打印机的接口脚本

  3. 设置目标、协议和超时

  4. 指定打印机可以直接打印到的文件内容类型

  5. 指定要使用的 PPD 文件

  6. 添加打印机描述

  7. 将打印过滤器添加到打印服务器

  8. 接受打印机的打印请求并启用打印机

  9. 验证打印机是否已准备好进行打印



示例 5–10 无需指定 PPD 文件即可添加新的网络连接的打印机

此示例说明如何在不指定 PPD 文件的情况下添加新的网络连接的打印机。这些命令必须在打印服务器上执行。以下信息仅用于示例目的。


# lpadmin -p luna1 -v /dev/null (1)
# lpadmin -p luna1 -m netstandard (2)
# lpadmin -p luna1 -o dest=nimquat:9100 -o protocol=tcp 
-o timeout=5 (3)
# lpadmin -p luna1 -I postscript -T PS (4)
# lpadmin -p luna1 -D "Room 1954 ps" (5)
# cd /etc/lp/fd
# for filter in *.fd;do	
	   > name =`basename $ filter .fd`	
	   > lpfilter -f $ name -F $ filter	
	   > done (6)
# accept luna1
	destination "luna1" now accepting requests
# enable luna1 (7)
printer "luna1" now enabled 
# lpstat -p luna1 (8)
printer luna1 is idle.enabled since Feb 28 11:21 2003.available.
  1. 定义打印机名称,并将设备设置为 /dev/null

  2. 定义网络打印机的接口脚本

  3. 设置目标、协议和超时

  4. 指定打印机可以直接打印到的文件内容类型以及打印机类型

  5. 添加打印机描述

  6. 将打印过滤器添加到打印服务器

  7. 接受打印机的打印请求并启用打印机

  8. 验证打印机是否已准备好进行打印


Procedure如何设置使用 IPP 连接到打印服务器的远程打印机

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 选择使用以下方法之一设置远程打印机:

    • 使用 lpadmin 命令:


      # lpadmin -p printer -s ipp://printer-ip-address/printers/printer-name
      
    • 使用 lpset 命令:


      # lpset -a printer-uri-supported=ipp://printer-ip-address/printers/printer-name
      

      使用带 -a 选项的 lpset 命令接受关键字/值对。在前面的输出中,所指定的关键字是 printer-uri-supported,值是 ipp://printer-ip-address/printers/printer-name。通常,不应将此值配置为直接引用打印机,而应引用打印服务器上的打印队列。

  3. (可选的)要确定您提供的 URI,请键入以下命令:


    $ lpstat -p ipp://printer-ip-address/printers/printer-name
    

    如果使用 lpstat 命令并将 URI 指定为目标,则会跳过本地打印配置,将您直接连接到网络连接的打印机或远程打印服务器。

使用打印机供应商提供的软件添加新的网络连接的打印机

网络打印机通常具有打印机供应商提供的软件支持。如果打印机具有打印机供应商提供的软件,请尽可能使用打印机供应商软件。该软件旨在支持打印机的属性,并可以充分利用打印机功能。请阅读打印机供应商文档,以安装和配置打印机,从而使该打印机可以处理 LP 打印服务。

Procedure如何使用打印机供应商提供的工具添加网络连接的打印机

  1. 将打印机连接到网络。打开打印机的电源。

    有关硬件交换机和布线要求的信息,请参阅打印机供应商的安装文档。获取 IP 地址并选择打印机节点的名称。此方法等效于将任何节点添加到网络。

  2. 遵照打印机供应商的说明添加网络连接的打印机。

    使用打印机供应商的说明配置网络连接的打印机。这些说明特定于供应商和打印机。

  3. 添加对新打印机的客户机访问。

    在添加打印机后,为打印客户机创建对打印机的访问。有关更多信息,请参见使用 LP 打印命令添加打印机访问

  4. 完成任何可选的任务。

    设置网络连接的打印机时,可能需要完成多个可选任务。有关这些任务的指针,请参见配置 Internet 打印协议(任务图)