PRINTCAP(8) May 10, 1991 PRINTCAP(8)

printcap - 打印机相容性数据库


Printcaptermcap(5) 的简单版, 用来描述 line printers. 当用到 spool 系 统时, 一定会去参考 printcap 这个档. 允许动态地加入及删除印表机. 在这资料 库中的每一段叙述代表一台印表机. This data base may not be substituted for, as is possible for termcap, because it may allow accounting to be bypassed.

预设的印表机是 lp, 虽然环境变数 PRINTER 可能优于(override)此. 每一 个用到 spool 的软体都支援 -p 的选项, 用以选择印表机. 如果想知道如何为一 台印表机设定资料的讨论, 请参照 4.3 BSD Line Printer Spooler Manual.

根据 termcap(5) 对档案输出的描述.
Name       Type      Description
af         str       NULL                   name of accounting file
br         num       none                   if lp is a tty, set the baud
                                            rate (ioctl(2) call)
cf         str       NULL                   cifplot data filter
df         str       NULL                   tex data filter (DVI format)
fc         num       0                      if lp is a tty, clear flag 
                                            bits (sgtty.h)
ff         str       `                   string to send for a form
fo         bool      false                  print a form feed when 
                                            device is opened
fs         num       0                      like `fc' but set bits
gf         str       NULL                   graph data filter (plot(3) 
hl         bool      false                  print the burst header page
ic         bool      false                  driver supports(non standard)
                                            ioctl to indent printout
if         str       NULL                   name of text filter which 
                                            does accounting
lf         str       /dev/console           error logging file name
lo         str       lock                   name of lock file
lp         str       /dev/lp                device name to open for 
mx         num       1000                   maximum file size (in BUFSIZ
                                            blocks), zero = unlimited
nd         str       NULL                   next directory for list of
                                            queues (unimplemented)
nf         str       NULL                   ditroff data filter (device
                                            independent troff)
of         str       NULL                   name of output filtering
pc         num       200                    price per foot or page in
                                            hundredths of cents
pl         num       66                     page length (in lines)
pw         num       132                    page width (in characters)
px         num       0                      page width in pixels
py         num       0                      page length in pixels 
rf         str       NULL                   filter for printing FORTRAN
                                            style text files
rg         str       NULL                   restricted group. Only
                                         members of group allowed access
rm         str       NULL                   machine name for remote
rp         str       ``lp''                 remote printer name argument
rs         bool      false                  restrict remote users to
                                            those with local accounts
rw         bool      false                  open the printer device for
                                            reading and writing
sb         bool      false                  short banner (one line only)
sc         bool      false                  suppress multiple copies
sd         str       /var/spool/lpd         spool directory
sf         bool      false                  suppress form feeds
sh         bool      false                  suppress printing of burst
                                            page header
st         str       status                 status file name
tf         str       NULL                   troff data filter (cat
tr         str       NULL                   trailer string to print when
                                            queue empties
vf         str       NULL                   raster image filter

如果本地端印表机(local line printer) driver 支援 indentation 的话, daemon 将 知道如何去用它.

lpd(8) 守护进程将创造出一个过滤的管线 (pipeline of filters) 来处理各个不同印 表机的档案. 过滤器将依照旗标来选择将何者送到 lpr(1) . 管线的设定值有:
p            pr | if regular text + pr(1)
none         If         regular text
c            cf         cifplot
d            df         DVI (tex)
g            gf         plot(3)
n            nf         ditroff
f            rf         Fortran
t            tf         troff
v            vf         raster image

if 过滤器的用法是:

if [-c] -wwidth -llength -iindent -n login -h host acct-file

-c 这个旗标只有在 -l 旗标有列在 lpr 中时才可忽略. width 和 length 定义 了 page 的长和宽 (from pw and pl respectively). -n 和 -h 可指定列印工作拥有者 的 login name 和 host name. Acct-file 将忽略 printcap 中的描述.

If no if is specified, of is used instead, with the distinction that of is opened only once, while if is opened for every individual job. Thus, if is better suited to performing accounting. The of is only given the width and length flags.


filter -xwidth -ylength -n login -h host acct-file

如果要用 pixels 为单位来定长宽的话, 用 px 和 py 这二个变数. 所有的过滤器都经由 stdin 输入档案, stdout 输出到印表机, 用 stderr 或 syslog(3) 来记录(log), 而且不会忽略 SIGINT.

Error messages generated by the line printer programs themselves (that is, the lp* programs) are logged by syslog(3) using the LPR facility. Messages printed on stderr of one of the filters are sent to the corre- sponding lf file. The filters may, of course, use syslog themselves.

Error messages sent to the console have a carriage return and a line feed appended to them, rather than just a line feed.

termcap(5), lpc(8), lpd(8), pac(8), lpr(1), lpq(1), lprm(1)
4.3 BSD Line Printer Spooler Manual.

The printcap file format appeared in 4.2BSD..

中原资管森林站 <>


本页面中文版由中文 man 手册页计划提供。
中文 man 手册页计划:
UNIX Programmer's Manual 4.2 Berkeley Distribution