printcap - Printer capability data base
/etc/printcap
The printcap file is used to describe printer characteristics.
The format of the printcap file is a simplified version
of the /etc/termcap database format.
The lpd line printer daemon accesses the /etc/printcap
file every time a file is passed to the spooler for printing.
The print spooling system uses the printcap file to
obtain information about each printer attached to the system
and about remote printers. Each entry in the printcap
file describes a single printer.
When the local line printer driver supports indentation,
the lpd line printer daemon must understand how to invoke
this capability.
The default printer for your system usually has the device
reference lp, although environment variable PRINTER can be
used to override the default printer reference. The print
commands (for example, lpr, lpq, and lprm) support the
-Pprinter option, which enables you to specify a specific
printer.
Note
See the RESTRICTIONS section for information on using
printconfig.
Printer Characteristic Symbols [Toc] [Back]
Each printer has various characteristics that tell the lpd
line printer daemon how to communicate with the printing
device defined in the /dev directory. A table in this section
lists the printer characteristic symbols and provides
the following information for each: The symbol, which is a
2-character mnemonic. The symbol must be specified exactly
as it appears in this column. Type of data expressed by
the entry as str, num, or bool. When the characteristic
defined by the symbol is referenced as a string variable
(str) in the Type column, it must be followed by an =
(equal sign) together with a string value; when you do not
define the string value, it either remains a NULL string
and contains no data or takes the value specified in the
Default column. When the Type column defines a symbol
type as bool, it may only be logically true (yes) or logically
false (no).
When the parameter you define is a numerical variable,
it must be followed with a # (pound sign)
together with the numerical value you assign; when
you do not define the numerical parameter it takes
the value specified in the Default column of the
table. A summary of the printer characteristic
that the symbol specifies.
Symbols whose descriptions are followed by "(I18N)"
are provided to meet country-specific printing
requirements. Refer to i18n_printing(5) for information
about when these symbols are valid in a
printer entry.
The following is an example of a printcap entry:
myprinter|lp0:\
:af=/usr/adm/lpacct:\
:br#9600:\
:ct=dev:\
:fc#0177777:\
:fs#023:\
:if=/usr/lbin/la75of:\
:lf=/usr/adm/lperr:\
:lp=/dev/tty00:\
:mx#0:\
:of=/usr/lbin/la75of:\
:pl#66:\
:pw#80:\
:sd=/usr/spool/lpd:\
:xc#0177777:\
:xf=/usr/lbin/xf:\
:xs#044000:
Entries can continue onto multiple lines by specifying
the backslash (\) as the last character of a
line. Empty fields can be included for readability
(here between the last field on a line and the
first field on the next line).
Comments can be included on lines beginning with
the pound sign (#).
Refer to the RESTRICTIONS section for information
on blank spaces and tab characters.
--------------------------------------------------------------------
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 The cifplot data filter.
ct str dev The connection type. The choices
are: dev, LAT (or lat), and tcp
(networked).
df str NULL The tex data filter (DVI format).
fc num 0 If lp is a tty, clear flag bits
(sgtty.h).
ff str \f String to send for a form feed.
fo bool false Print a form feed when the device is
opened.
fs num 0 Like fc, but set bits.
gf str NULL The graph data filter (plot format).
hl bool false Print the burst header page last.
if str NULL Name of text filter that does
accounting.
jj bool NULL Turns on (or restores) the ability
of lpd to keep one connection to a
printer open for all pending jobs in
the queue. Zero (0) is off (one job
per connection), 1 is on (multiple
jobs per connection).
lf str /dev/con- Error logging filename.
sole
lo str lock Name of lock file.
lp str /dev/lp Device name to open for output. For
network (TCP/IP) printers, enter the
name a @hostname/servicename. The
servicename is defined in /etc/services
with the port number.
mj num 1000 Maximum number of jobs that can be
submitted to a print queue. The
limit is 1,000,000 (ranging from 0
to 999,999).
mx num 1000 Maximum file size (in BUFSIZ
blocks). Zero = unlimited.
nf str NULL The ditroff data filter (for device
independent troff).
of str NULL Name of output filtering program.
on str NULL Supported in clusters only. Valid
entries are localhost and/or a
comma-separated list of cluster member
(host) names.
pl num 66 Page length (in lines).
pw num 132 Page width (in columns).
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.
rm str NULL Machine name for remote printer.
(Required for remote printers.) Use
the string @dpa to define an inbound
gateway for the Advanced Printing
Software.
rp str lp Remote printer name argument.
(Required for remote printers.)
Specify a logical printer name, such
as lpr1, for the Advanced Printing
Software.
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 /usr/spool/lpd Spool directory. (Required for LAT
and remote printers.)
sf bool false Suppress form feeds.
sh bool false Suppress printing of burst page
header.
st str status Status filename.
tf str NULL The troff data filter (for the cat
phototypesetter).
tr str NULL Trailer string to print when queue
empties.
vf str NULL The raster image filter.
xc num 0 If lp is a tty, clear local mode
bits (tty).
xf str NULL Pass-through filter.
xs num 0 Like xc, but set bits.
ya str NULL Additional parameters for print filter
(I18N).
yd str NULL Secondary device name for font
faulting (I18N).
yp str NULL Printer ID conforming to Wototo
standard (I18N).
ys num 0 Size of SoftODL character cache
(I18N).
yt str "fifo" SoftODL character replacement strategy
(I18N).
--------------------------------------------------------------------
When the local line printer driver supports indentation,
the lpd line printer daemon must understand how to invoke
this capability.
LAT Printing Characteristics [Toc] [Back]
The following table lists the LAT printing characteristics:
------------------------------------------------------
Name Type Default Description
------------------------------------------------------
ct str LAT Remote printing using LAT
as the transport
lp str /dev/ttyWX Device name to open for
output where WX is a LAT
device.
------------------------------------------------------
Network (TCP/IP) Printing Characteristics
The following table lists typical TCP/IP printing characteristics
for a DEClaser3500 printer. The entry in the
/etc/services file reads:
dlaser35 10001/tcp
Examples of print symbol settings are set as follows: Has
a value of tcp to specify network printing using TCP/IP
Has a value of @prthub/dlaser35 which specifies service
name dlaser35 on node prthub
Advanced Printing Software [Toc] [Back]
If Advanced Printing Software is installed you must specify
the string @dpa for the rm characteristic and specify
a queue name for the rp characteristic.
Refer to the Advanced Printing Software documentation for
more information on setting up the printing environment.
Filter and Flags [Toc] [Back]
The lpd line printer daemon creates a pipeline of filters
to process files for various different printer device. The
filters you select depend on the flags that are passed to
the lpr command. The pipeline setup is:
-----------------------------------
Flag Filter Description
-----------------------------------
none if regular text
-p pr | if regular text + pr
-c cf cifplot
-d df DVI (tex)
-g gf plot
-n nf ditroff
-f rf FORTRAN
-t tf troff
-v vf raster image
-----------------------------------
The if filter is invoked with arguments according to the
following format: if [-c] -wwidth -llength -iindent
-nlogin -hhost acct-file
The xf pass-through filter is specified when output is
preformatted and does not require special filtering.
The -c flag is passed only when the -l flag (pass controlcharacters
literally) is specified to the lpr command. The
-wwidth and -llength parameters specify the page width and
length (from the assigned or default values of pw and pl
respectively in the printcap file) in characters. The -n
and -h flags specify the login name and hostname of the
owner of the job, respectively. The acct-file is passed
from the af entry in the printcap file.
The if filter is opened for all individual jobs, which
makes it suitable for accounting. When the if filter is
not specified, the system uses the of filter as the
default value. The of filter however, is opened only once
and is only given the -wwidth and -llength flags.
All other filters are called according to the following
format: filter -xwidth -ylength -nlogin -h host acct-file
In this format, -xwidth and -ylength are represented in
pixels as specified by the px and py entries, respectively,
in the printcap file.
All filters take standard input (stdin) as the source file
and standard output (stdout) as the destination. The
printer may log either to standard error (stderr) or use
syslogd, and must not ignore the SIGINT signal.
ERROR LOGGING [Toc] [Back]
Error messages generated by the line printer programs
(that is, the lp* programs) are logged by syslogd using
the lpr facility. Messages printed on the stderr of one
of the filters are sent to the corresponding lf file specified
in the printcap file. The filters may, of course,
also use syslogd.
Error messages sent to the console have a carriage return
and a line feed appended to them, rather than just a line
feed.
Editing the /etc/printcap file manually is not recommended.
Use the appropriate configuration utilities to
add printers and symbols. If a printcap file is corrupted,
you will see an error message to this effect. A likely
cause of such corruption is the presence of tab or space
characters in a blank line or following a continuation
character (\). Use the following command to find incorrect
tabs or spaces in the printcap file:
$ cat -e /etc/printcap | more
The preceding command marks the end of each line with a
dollar sign ($) so that trailing tabs and spaces are easily
visible.
The following restrictions apply when using older versions
of printcap files, at Digital UNIX Version 3.2 or earlier:
The system assigns printers names lp[0-9]*, [0-9]*, and
for the default printer, lp. For example, the default
printer may have a name field such as
lp0|0|lp|default|declaser3500:... and another printer may
be lp7|7|some_alias|another alias:.... As a result, the
system will have difficulty with printers that have less
than two names or that use these reserved names as
aliases. Some of the attribute value checking is different.
For example, some fields that were not required now
are, and some attributes values that were legal no longer
are. The printconfig utility requires that all comments
be associated with a printer. As a result, comments
appearing after the last printer will be truncated
(deleted). As a work around, invoke printconfig with the
menu interface as follows:
printconfig -ui menu
this command invokes lprsetup which is fully compatible
with earlier printcap files.
Commands: lpq(1), lpr(1), lprm(1), lpc(8), lpd(8),
lprsetup(8), pac(8)
Files: termcap(4)
Others: i18n_printing(5)
System Administration
Network Administration: Connections
printcap(4)
[ Back ] |