up | Inhaltsverzeichniss | Kommentar

Manual page for PRINTCAP(5)

printcap - printer capability data base




printcap is a simplified version of the termcap.5 data base for describing printers. The spooling system accesses the printcap file every time it is used, allowing dynamic addition and deletion of printers. Each entry in the data base describes one printer. This data base may not be substituted for, as is possible for termcap, because it may allow accounting to be bypassed.

The default printer is normally lp, though the environment variable PRINTER may be used to override this. Each spooling utility supports a -Pprinter option to explicitly name a destination printer.

Refer to [a manual with the abbreviation ADMIN] for a discussion of how to set up the database for a given printer. On Sun386i systems, refer to snap.1 for information on setting up printers with the system and network administration program.

Each entry in the printcap file describes a printer, and is a line consisting of a number of fields separated by `:' characters. The first entry for each printer gives the names which are known for the printer, separated by `|' characters. The first name is conventionally a number. The second name given is the most common abbreviation for the printer, and the last name given should be a long name fully identifying the printer. The second name should contain no blanks; the last name may well contain blanks for readability. Entries may continue onto multiple lines by giving a `\' as the last character of a line, and empty fields may be included for readability.

Capabilities in printcap are all introduced by two-character codes, and are of three types:

Capabilities that indicate that the printer has some particular feature. Boolean capabilities are simply written between the `:' characters, and are indicated by the word `bool' in the type column of the capabilities table below.
Capabilities that supply information such as baud-rates, number of lines per page, and so on. Numeric capabilities are indicated by the word num in the type column of the capabilities table below. Numeric capabilities are given by the two-character capability code followed by the `#' character, followed by the numeric value. The following example is a numeric entry stating that this printer should run at 1200 baud:


Capabilities that give a sequence which can be used to perform particular printer operations such as cursor motion. String valued capabilities are indicated by the word str in the type column of the capabilities table below. String valued capabilities are given by the two-character capability code followed by an `=' sign and then a string ending at the next following `:'. For example,


is a sample entry stating that the remote printer is named spinwriter.


On Sun386i systems, lpr.1 and related printing commands use the Network Information Service (NIS) to obtain the printcap entry for a named printer if the entry does not exist in the local /etc/printcap file. For example, when a user issues the command:

lpr -Pnewprinter foo

lpr searches /etc/printcap on the local system for an entry for newprinter. If no local entry for newprinter exists, then lpr searches the NIS map called printcap. The search is invisible to the user.

lpr creates the spooling directory for the printer automatically if no spooling directory exists.

System administrators can make a printer available to the entire NIS domain by placing an entry for that printer in the NIS printcap map, typically using snap. Otherwise, the system administrator must edit the /etc/printcap file on the NIS master and then rebuild the NIS map.


Name   Type   Default              Description
 af    str    NULL                 name of accounting file
 br    num    none                 if lp is a tty, set the baud rate (ioctl call)
 cf    str    NULL                 cifplot data filter
 df    str    NULL                 TeX data filter (DVI format)
 du    str    0                    User ID of user `daemon'.
 fc    num    0                    if lp is a tty, clear flag bits
 ff    str    ``\f''               string to send for a form feed
 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(3X) format)
 hl    bool   false                print the burst header page last
 ic    bool   false                driver supports (non standard) ioctl to indent printout
 if    str    NULL                 name of input/communication filter (created per job)
 lf    str    ``/dev/console''     error logging file name
 lo    str    ``lock''             name of lock file
 lp    str    ``/dev/lp''          device name to open for output
 mc    num    0                    maximum number of copies
 ms    str    NULL                 list of terminal modes to set or clear
 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/banner filter (created once)
 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 (horizontal)
 py    num    0                    page length in pixels (vertical)
 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 printer
 rp    str    ``lp''               remote printer name argument
 rs    bool   false                restrict remote users to those with local accounts
 rw    bool   false                open printer device read/write instead of write-only
 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
 tc    str    NULL                 name of similar printer; must be last
 tf    str    NULL                 troff data filter (C/A/T phototypesetter)
 tr    str    NULL                 trailer string to print when queue empties
 vf    str    NULL                 raster image filter
 xc    num    0                    if lp is a tty, clear local mode bits
 xs    num    0                    like `xc' but set bits

If the local line printer driver supports indentation, the daemon must understand how to invoke it.

Note: the fs, fc, xs, and xc fields are flag masks rather than flag values. Certain default device flags are set when the device is opened by the line printer daemon if the device is connected to a terminal port. The flags indicated in the fc field are then cleared; the flags in the fs field are then set (or vice-versa, depending on the order of fc#nnnn and fs#nnnn in the /etc/printcap file). The bits cleared by the fc field and set by the fs field are those in the sg_flags field of the sgtty structure, as set by the TIOCSETP ioctl call, and the bits cleared by the xc field and set by the xs field are those in the ``local flags'' word, as set by the TIOCLSET ioctl call. See ttcompat.4m for a description of these flags. For example, to set exactly the flags 06300 in the fs field, which specifies that the EVENP, ODDP, and XTABS modes are to be set, and all other flags are to be cleared, do:


The same process applies to the xc and xs fields. Alternatively, the ms field can be used to specify modes to be set and cleared. These modes are specified as stty.1v modes; any mode supported by stty may be specified, except for the baud rate which must be specified with the br field. This permits modes not supported by the older terminal interface described in ttcompat.4m to be set or cleared. Thus, to set the terminal port to which the printer is attached to even parity, TAB expansion, no NEWLINE to RETURN/LINEFEED translation, and RTS/CTS flow control enabled, do:


On Sun386i systems, the tc field, as in the termcap.5 file, must appear last in the list of capabilities. It is recommended that each type of printer have a general entry describing common capabilities; then an individual printer can be defined with its particular capabilities plus a tc field that points to the general entry for that type of printer.




lpq.1 lpr.1 lprm.1 plot.1g snap.1 stty.1v plot.3x ttcompat.4m termcap.5 lpc.8 lpd.8 pac.8

[a manual with the abbreviation ADMIN]


The Network Information Service (NIS) was formerly known as Sun Yellow Pages (YP). The functionality of the two remains the same; only the name has changed.

index | Inhaltsverzeichniss | Kommentar

Created by unroff & hp-tools. © by Hans-Peter Bischof. All Rights Reserved (1997).

Last modified 21/April/97