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.