Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ printcap(4) — Digital UNIX 3.2c

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

lpc(8)

lpd(8)

pac(8)

lpr(1)

lpq(1)

lprm(1)

lprsetup(8)

termcap(4)

printcap(4)  —  File Formats

NAME

printcap − Printer capability data base

SYNOPSIS

/etc/printcap

DESCRIPTION

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. 

Printer Characteristic Symbols

Each printer has various characteristics that tells the lpd line printer daemon how to communicate with the printing device defined in the /dev directory. The following table lists the printer characteristic symbols. 

Name2-character mnemonic used to define the parameter. The parameter must be specified exactly as it appears in this column. 

TypeType of data expressed by the entry as str, num, or bool.  When the parameter you define is referenced as a string variable (str) in the Type column, it must be followed by an = (equal sign) together with the string; when you do not define the string parameter, it remains a NULL string and contains no data or it takes the value specified in the Default column.  When the Type column defines a parameter 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. 

DescriptionThe 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 giving a \ 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). Comments can be included on lines beginning with the pound sign (#).

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 Connection type.  Only valid when up=psv4.0. (Choices are: dev, LAT, and remote.  (Required for LAT printers.) 
ct str LAT remote printing using LAT as the transport
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 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
ic bool false Driver supports (non standard) ioctl to indent printout
if str NULL Name of text filter that does accounting
lf str /dev/console Error logging filename
lo str lock Name of lock file
lp str /dev/lp Device name to open for output  (Required for LAT and remote printers.) 
mx num 1000 Maximum file size (in BUFSIZ blocks), zero = unlimited
nf str NULL The ditroff data filter (device independent troff)
of str NULL Name of output filtering program
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
rm str NULL Machine name for remote printer (Required for remote printers.) 
rp str lp Remote printer name argument (Required for remote printers.) 
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 (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

When the local line printer driver supports indentation, the lpd line printer daemon must understand how to invoke this capability. 

LAT Printing Characteristics

The following table lists the LAT printing characteristics:

Name Type Default Description
cd 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

Filter and Flags

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 set up 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:

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 control-characters 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 as:

filter −xwidth −ylength −nlogin −h host acct-file

Where −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

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. 

RELATED INFORMATION

Commands: lpc(8), lpd(8), pac(8), lpr(1), lpq(1), lprm(1), lprsetup(8)

Files:  termcap(4)

Manuals: Network Configuration

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026