JavaScript is required to for searching.
跳过导航链接
退出打印视图
系统管理指南:打印     Oracle Solaris 10 1/13 Information Library (简体中文)
search filter icon
search icon

文档信息

关于本书

1.  关于在 Oracle Solaris 操作系统中进行打印的简介

2.  计划打印(任务)

3.  设置网络打印服务(任务)

4.  使用 Oracle Solaris 打印管理器设置和管理打印机(任务)

5.  使用 LP 打印命令设置打印机(任务)

6.  使用 LP 打印命令管理打印机(任务)

7.  定制 LP 打印服务和打印机(任务)

8.  管理 LP 打印调度程序和打印请求(任务)

9.  管理网络上的打印机(任务)

10.  管理字符集、过滤器、表单和字体(任务)

11.  使用 PPD 文件管理实用程序管理打印机(任务)

12.  在 Oracle Solaris 操作系统中打印(参考)

Oracle Solaris 打印管理器

Oracle Solaris 打印管理器和特殊字符

打印机定义

打印机名称

打印服务器

打印机描述

打印机端口

打印机类型

文件内容类型

打印机生产商

打印机型号

打印机驱动程序

打印机目标

网络协议

故障通知

Default Printer(缺省打印机)

标题页

用户访问列表

打印机类

故障恢复

LP 打印服务

LP 打印服务命令

LP 打印服务的功能

守护进程和 LP 内部文件

LP 打印服务目录

LP 打印服务配置文件

terminfo 数据库

terminfo 数据库中的打印机名称

打印机必需的 terminfo

LP 打印服务日志文件

打印队列日志

历史记录日志文件

假脱机目录

过滤打印文件

打印机接口程序的工作原理

支持使用 PPD 文件设置打印机

光栅图像处理器支持

对 PostScript 打印机描述文件的支持

在何处查找有关支持的打印机和可用 PPD 文件的信息

PPD 文件管理实用程序

PPD 文件系统信息库

PPD 文件标签

Oracle Solaris 打印管理器中的打印机驱动程序字段的说明

生产商别名文件

PPD 文件高速缓存

ppdmgr 实用程序的命令行选项的说明

PAPI 在 Oracle Solaris OS 中的实现方式

已修改的打印命令

13.  Oracle Solaris OS 中的打印问题故障排除(任务)

A.  使用 Internet 打印协议

词汇表

索引

LP 打印服务

本节介绍 LP 打印服务的目录结构、文件和日志。

LP 打印服务命令


注 - LP 打印服务客户机命令已经过修改,可以使用 FSG OpenPrinting 开放标准打印 API (Print API, PAPI)。这些打印命令位于 PAPI 的上面一层。有关更多信息,请参见PAPI 在 Oracle Solaris OS 中的实现方式


下表列出经常使用的 LP 打印服务命令。

表 12-2 LP 打印服务命令

命令
任务
手册页
enable
激活打印机
cancel
取消打印请求
lp
将一个或多个文件发送到打印机
lpstat
报告 LP 打印服务的状态
disable
取消激活一台或多台打印机
accept
允许打印请求为特定目标进行排队
reject
阻止打印请求为特定目标进行排队
lpadmin
设置或更改打印机配置
lpfilter
设置或更改过滤器定义
lpforms
设置或更改预先打印的表单
lpadmin
挂载表单
lpmove
将输出请求从一个目标移动到另一个目标
lpsched
启动 LP 打印服务调度程序
lpshut
停止 LP 打印服务调度程序
lpusers
设置或更改用户可以请求的 LP 打印服务的缺省优先级和优先级限制

有关已经过修改可用于 PAPI 的打印命令的信息,请参见PAPI 在 Oracle Solaris OS 中的实现方式

LP 打印服务的功能

LP 打印服务可执行以下功能:

守护进程和 LP 内部文件

/usr/lib/lp 目录包含由 LP 打印服务使用的守护进程和文件,如下表所述。

表 12-3 /usr/lib/lp 目录的内容

文件
类型
说明
bin
目录
包含用于生成打印警报、慢速过滤器和队列管理程序的文件。
model
目录
包含标准打印机接口程序。
postscript
目录
包含 LP 打印服务提供的所有 PostScript 过滤器程序。这些过滤器随 /etc/lp/fd 目录中的描述符文件一起提供。这些文件会通知 LP 打印服务过滤器的特征以及它们的位置。

LP 打印服务目录

LP 打印服务的文件分布在下表中显示的目录中。

表 12-4 LP 打印服务的目录

目录
内容
/usr/bin
LP 打印服务的用户命令。
/etc/lp
LP 服务器配置文件的分层结构。
/usr/share/lib
terminfo 数据库目录。
/usr/lib/print
lp 转换脚本、in.lpd 守护进程和 printd 守护进程。printd 守护进程每分钟传输一次 /var/spool/print 目录中的所有暂挂作业。当没有要传输的剩余作业时,printd 守护进程将退出。
/usr/sbin
LP 打印服务管理命令。
/usr/lib/lp
lpsched 程序、二进制文件、PostScript 过滤器以及包含标准打印机接口程序的 model 目录。
/var/lp/logs
LP 日志文件,如 lpsched.n(它包括来自 lpsched 的消息)和 requests.n(它包括有关已完成的打印请求的信息)。
/var/spool/lp
其中的文件排队等待打印的假脱机目录。
/var/spool/print
LP 打印服务客户端请求的暂存区域。
/etc/lp/model/uri
用于处理 device-uri 信息的接口脚本的位置。

LP 打印服务配置文件

lpsched 守护进程在 /etc/lp 目录中存储配置信息,如下表所述。


注意

注意 - 此表中列出的配置文件是专用接口。这些文件在将来的发行版中可能会更改。您不应生成依赖于当前位置的这些文件或依赖于当前所用格式的数据的软件。


表 12-5 /etc/lp 目录的内容

文件
类型
说明
classes
目录
标识 lpadmin -c 命令提供的类的文件。
fd
目录
现有过滤器的说明。
filter.table
文件
打印过滤器查找表。
forms
目录
用于放置每个表单的文件的位置。此目录最初为空。
interfaces
目录
打印机接口程序文件。
logs
/var/lp/logs 的链接
打印活动的日志文件。
model
/usr/lib/lp/model 的链接
标准打印机接口程序。
printers
目录
每台本地打印机的目录。每个目录都包含单台打印机的配置信息和警报文件。
pwheels
目录
打印轮文件或盒文件。
ppd
目录
使用 PPD 文件配置的每个本地队列都在此处放置了 PPD 文件的一个副本。

这些配置文件提供与基于 LPD 的打印服务器上的 /etc/printcap 文件类似的功能。


注 - 您可以检查配置文件的内容,但是不应直接编辑这些文件,而应改用 lpadmin 命令进行配置更改。更改将写入 /etc/lp 目录中的配置文件。lpsched 守护进程可管理和更新配置文件。


/etc/lp/printers 目录包含系统可识别的每个本地打印机的子目录。以下示例显示了打印机 sparc1luna/etc/lp/printers 子目录。

$ ls -l /etc/lp/printers
drwxrwxr-x 2 lp lp 512 Jan 23 23:53 luna
drwxrwxr-x 2 lp lp 512 Jan 11 17:50 sparc1

下表介绍了每个打印机特定的目录内的文件。

文件名
说明
alert.sh
在响应警报时要执行的 Shell
alert.vars
警报变量
configuration
配置文件
users.deny
拒绝其访问打印机的用户的列表
comment
打印机描述

打印机 luna 的配置文件 /etc/lp/printers/luna/configuration 通常如下所示:

Banner: on: Always
Content types: PS
Device: /dev/term/b
Interface: /usr/lib/lp/model/standard
Printer type: PS
Modules: default

terminfo 数据库

/usr/share/lib 目录包含 terminfo 数据库目录。此目录包含许多类型的终端和打印机的定义。LP 打印服务使用 terminfo 数据库中的信息执行以下任务:

每台打印机在 terminfo 数据库中使用短名称标识。如有必要,可以向 terminfo 数据库中添加一些项,但是这样做很单调乏味且很耗时。有关更多信息,请参见为不支持的打印机添加 terminfo

terminfo 数据库中的打印机名称

有关每种打印机类型的信息存储在 terminfo 数据库 (/usr/share/lib/terminfo) 中。此信息包括打印机功能和初始化控制数据。您安装的打印机必须对应于 terminfo 数据库中的项。

$ pwd
/usr/share/lib/terminfo
$ ls
1  3  5  7  9  B  H  P  a  c  e  g  i  k  m  o  q  s  u  w  y
2  4  6  8  A  G  M  S  b  d  f  h  j  l  n  p  r  t  v  x  z
$ 

每个子目录都包含终端或打印机的已编译数据库项。这些项按打印机或终端类型的第一个字母进行组织。例如,如果具有 Epson 打印机,则在 /usr/share/lib/terminfo/e 目录中查找,以找出特定型号的 Epson 打印机。

$ cd /usr/share/lib/terminfo/e
$ ls
emots           ep2500+high   ep48            ergo4000      exidy2500
env230          ep2500+low    epson2500       esprit
envision230     ep40          epson2500-80    ethernet
ep2500+basic    ep4000        epson2500-hi    ex3000
ep2500+color    ep4080        epson2500-hi80  exidy
$ 

Epson 打印机的项以 epson 开头。

如果具有 NEC 打印机,则在 /usr/share/lib/terminfo/n 目录中查找 NEC 打印机型号。

$ cd /usr/share/lib/terminfo/n
$ ls
ncr7900        ncr7900iv      netronics      network        nuc
ncr7900-na     ncr7901        netty          netx           nucterm
ncr7900i       nec            netty-Tabs     newhp
ncr7900i-na    net            netty-vi       newhpkeyboard
$ 

此目录中的 nec 项用于 NEC 打印机。

打印机必需的 terminfo

以下三个表列出打印机必需的 terminfo 项。

表 12-6 打印机的必需 terminfo 项(布尔值)

项目
说明
布尔值:
cpix
更改字符间距会更改分辨率
daisy
打印机需要一个用于更改字符集的运算符
lpix
更改行间距会更改分辨率

表 12-7 打印机的必需 terminfo 项(数字)

项目
说明
数字:
bufsx
打印之前缓冲的字节数
cols
一行中的列数
cps
平均打印速度(字符/秒)
it
将制表符初始设置为 n 个空格
lines
每页的行数
orc
水平分辨率,以字符为单位
orhi
水平分辨率,以英寸为单位
orl
垂直分辨率,以行为单位
orvi
垂直分辨率,以英寸为单位

表 12-8 打印机的必需 terminfo 项(字符串)

项目
说明
字符串:
chr
更改水平分辨率
cpi
更改每英寸字符数
cr
回车
csnm
字符集名称列表
cudl
回车下移一行
cud
回车下移 n
cuf
回车右移 n
cvr
更改垂直分辨率
ff
弹出页面
hpa
水平绝对位置
ht
按 Tab 键跳至下一个 8 空格制表位
if
初始化文件名
iprog
初始化程序的路径名
is1
打印机初始化字符串
is2
打印机初始化字符串
is3
打印机初始化字符串
lpi
更改每英寸行数
mgc
清除所有页边距(上、下和左右)
rep
将一个字符重复 n
rwidm
禁用倍宽打印
scs
选择字符集
scsd
开始定义字符集
slines
将页长设置为每页 n
smgl
设置当前列的左页边距
smglp
设置左页边距
smgr
设置当前列的右页边距
smgrp
设置右页边距
smglr
同时设置左页边距和右页边距
msgt
设置当前行的上页边距
smgtp
设置上页边距
smgb
设置当前行的下页边距
smgbp
设置下页边距
smgtb
同时设置上页边距和下页边距
swidm
启用倍宽打印
vpa
将垂直位置设置为绝对位置

LP 打印服务日志文件

LP 打印服务维护下表中介绍的两组日志文件。

日志文件名称
说明
syslogd
/etc/syslog.conf 中的 lpr.debug 设置为启用 LP 打印服务日志记录
/var/spool/lp
排在打印队列中的当前请求的列表
/var/lp/logs/requests
打印请求的进展历史记录

打印队列日志

每个系统的调度程序都将打印请求日志保留在 /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 目录的内容:

$ ls /var/spool/lp/tmp/starbug
5     5-0
# cat 5-0
C 1
D print1
F /etc/profile
P 20
T /etc/profile
t simple
U root
s 0000
v 2

只要打印请求排在队列中,这些文件就仅保留在其目录中。完成打印请求后,将对文件中的信息进行合并,并附加到 /var/lp/logs/requests 文件。此文件将在下一节中介绍。

如果需要跟踪当前队列中打印请求的状态,请使用 /var/spool/lp/logs 目录中的信息。

历史记录日志文件

LP 打印服务在以下两个日志文件中记录打印服务的历史记录:lpschedrequests。这些日志文件位于 /var/lp/logs 目录中。您可以使用这些日志文件中的信息诊断和排除打印故障。以下是 /var/lp/logs 目录内容的一个示例:

# cd /var/lp/logs
# ls
lpsched.1    requests    requests.2
lpsched      lpsched.2   requests.1
# 

以下是用于排除故障的两个最重要的日志文件:

requests 日志文件具有简单的结构,以便您可以使用常见的 UNIX shell 命令提取数据。请求将按其打印的顺序列出。另外,请求由显示其请求 ID 的行分隔。分隔行(以 = 开头的行)下方的每行标记有单个字母,以标识该行中所包含信息的种类。每个字母由单个空格与数据分隔开。

以下示例显示了 requests 日志文件的内容:

# pwd
/var/lp/logs
# tail requests.2
= print1-3, uid 0, gid 1, size 206662, Wed Mar 14 08:56:30 MST 2003
z print1
C 1
D print1
F /usr/dict/words
P 20
T /usr/dict/words
t simple
U root
s 0x0014
v 2
#

下表显示了 requests 日志文件中的字母代码及其对应行的内容。

表 12-9 requests 日志文件中的代码

字母
行的内容
=
分隔行,该行包含以下各项: 请求 ID、用户 ID (user ID, UID) 和用户组 ID (group ID, GID)、原始(未过滤的)文件大小的总字节数以及将请求排队的时间。
z
打印机的名称。
C
打印的份数。
D
打印机或类的目标,或者 any 一词。
F
已打印文件的名称。对每个已打印的文件,重复该行。文件按所显示的顺序打印。
f
(可选的)所用表单的名称。
H
(可选的)以下三种特殊处理类型之一: 恢复、暂挂和立即。
N
(可选的)在成功完成打印请求时使用的警报类型。如果通过电子邮件通知用户,则类型用字母 M 表示;如果通过将消息发送到终端来通知用户,则类型用字母 W 表示。
O
(可选的)与打印机有关的 -o 选项。例如 nobanner
P
打印请求的优先级。
p
已打印页的列表。
r
(可选的)当用户使用 lp -r 命令请求对文件进行“原始”处理时包括的单个字母行。
S
(可选的)所用的字符集、打印轮或打印盒。
T
放置在标题页上的标题。
t
在文件中找到的内容类型。
U
提交打印请求的用户的名称。
s
请求的结果,显示为以十六进制格式表示的单个位的组合。多个位由打印服务在内部使用。下表介绍了各个位及其含义。
v
  • 0-标识打印作业源自 in.1pd 打印守护进程或网络上的其他系统。
  • 2-标识打印作业源自 /usr/bin/lp/usr/ucb/lpr 命令。

  • 1-标识打印作业源自打印软件的较旧版本。

x
(可选的)用于打印请求的慢速过滤器。
Y
(可选的)用于打印请求的打印过滤器的特殊模式列表。
z
(可选的)用于请求的打印机。如果已为任何打印机或打印机类请求排队,或者请求已移动到其他目标,则该打印机与目标(D 行)不同。

下表显示了 LP requests 日志文件中的结果代码及其说明。

表 12-10 requests 日志文件中的结果代码

结果代码
说明
0x0001
请求处于暂挂状态,直到进行恢复。
0x0002
慢速过滤正在运行。
0x0004
慢速过滤已成功完成。
0x0008
请求位于打印机上。
0x0010
已成功完成打印。
0x0020
请求处于暂挂状态,直到用户进行更改。
0x0040
请求已取消。
0x0080
接下来将打印请求。
0x0100
请求无法过滤或打印。
0x0200
请求正在传输到远程打印机(过时)。
0x0400
用户将接到通知。
0x0800
通知正在运行。
0x1000
远程系统已接受请求(过时)
0x2000
管理员暂挂了请求。
0x4000
打印机必须更改过滤器。
0x8000
请求暂时停止。

假脱机目录

排队打印的文件在打印之前存储在 /var/spool/lp 目录中,这可能仅需几秒。下表显示了 /var/spool/lp 目录的内容。

表 12-11 /var/spool/lp 目录的内容

文件
类型
说明
SCHEDLOCK
文件
调度程序的锁定文件。如果调度程序终止且不会重新启动,请检查此文件。
admins
目录
/etc/lp 的链接。
bin
目录
/usr/lib/lp/bin 的链接。
logs
链接
../lp/logs(在其中记录已完成的打印请求)的链接。
model
链接
/usr/lib/lp/model 的链接。
requests
目录
包含每台已配置打印机的子目录的目录,其中记录了尚未打印的打印请求。用户无法访问此日志。
system
目录
系统的打印状态文件。
temp
链接
/var/spool/lp/tmp/hostname(包含已假脱机的请求)的链接。
tmp
目录
每台已配置打印机的目录,其中记录了尚未打印的打印请求。对现有打印请求进行的更改也记录在此目录中。

过滤打印文件

打印过滤器是打印服务器上的程序,用于将已排队文件的内容从一种格式转换为另一种格式。

打印过滤器可以很简单,也可以很复杂,具体视需要而定。Oracle Solaris OS 在 /usr/lib/lp/postscript 目录中提供了打印过滤器,这些过滤器涵盖了目标打印机要求数据为 PostScript 格式的大多数情况。如果您需要用于非 PostScript 打印机的过滤器,则必须创建这些过滤器并将其添加到需要过滤器的系统。

/etc/lp/fd 目录中提供了一组打印过滤器描述符文件。这些描述符文件描述了过滤器的特征(例如,快速过滤器或慢速过滤器)。这些描述文件指向过滤器程序(例如,指向 /usr/lib/lp/postscript/postdaisy)。

打印机接口程序的工作原理

LP 打印服务与 Oracle Solaris OS 的其他部件进行交互。打印服务使用标准打印机接口程序执行以下操作:

LP 打印服务使用在 /usr/lib/lp/model 目录中找到的标准接口程序,除非您指定了其他程序。您可以创建定制接口程序。但是,必须确保定制程序不会终止与打印机的连接或干扰正常的打印机初始化。