NAME printcap - printer capability data base SYNOPSIS /etc/printcap DESCRIPTION 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 addi- tion and deletion of printers. Each entry in the data base describes one printer. This data base may not be substi- tuted 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 spool- ing utility supports a -Pprinter option to explicitly name a destination printer. Refer to System and Network Administration 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 pro- gram. 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 readabil- ity. 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: Boolean 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. Numeric 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: :br#1200: String 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 capa- bilities are given by the two-character capability code followed by an `=' sign and then a string ending at the next following `:'. For example, :rp=spinwriter: is a sample entry stating that the remote printer is named spinwriter. Sun386i DESCRIPTION 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 automati- cally 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. CAPABILITIES 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 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 dev- ice 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: :fc#0177777:fs#06300: The same process applies to the xc and xs fields. Alterna- tively, 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 trans- lation, and RTS/CTS flow control enabled, do: :ms=evenp,-tabs,nl,crtscts: On Sun386i systems, the tc field, as in the termcap(5) file, must appear last in the list of capabilities. It is recom- mended 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. FILES /etc/printcap SEE ALSO lpq(1), lpr(1), lprm(1), plot(1G), snap(1), stty(1V), plot(3X), ttcompat(4M), termcap(5), lpc(8), lpd(8), pac(8) System and Network Administration NOTES 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.