19.5. Control File Contents

The control file consists of a set of lines which either provide printing information or specify data files to be printed. The information lines start with upper case letters or digits, while the data files lines start with lower case letters. Here is a sample control file:

Hh4.private
J(stdin)
CA
Lpapowell
Apapowell@h4+955
Ppapowell
fdfA955h4.private
N(stdin)
UdfA955h4.private

The following are the letters and their meanings in the control file.

Table 19-2. Control File Lines and Purpose

Letter Defined Purpose
A LPRng Identifier for job
C RFC1179 Class for banner page
H RFC1179 Host name
I RFC1179 Indent Printing
J RFC1179 Job name for banner page
L RFC1179 Print banner page
M RFC1179 Mail When Printed
N RFC1179 Name of source file
P RFC1179 User identification
Q LPRng Queue name
R LPRng Accounting info
S RFC1179 Symbolic link data
T RFC1179 Title for pr
U RFC1179 Unlink data file
W RFC1179 Width of output
Z LPRng Filter options
1 RFC1179 troff R font
2 RFC1179 troff I font
3 RFC1179 troff B font
4 RFC1179 troff S font
c RFC1179 Plot CIF file
d RFC1179 Print DVI file
f RFC1179 Print formatted file
g RFC1179 Plot file
k RFC1179 Reserved for use by Kerberized LPRng clients and servers.
l RFC1179 Print file leaving control characters
n RFC1179 Print ditroff output file
o RFC1179 Print Postscript output file
p RFC1179 Print file with 'pr' format
t RFC1179 Print troff output file
v RFC1179 Print raster file
z RFC1179 Reserved for future use with the Palladium print system.

The A (Identifier) line was introduced to record a unique system wide job identifier for LPRng submitted jobs. This is basically formed from the user name, job number, and host at the time of submission. For example: papowell@h4+955 is job number 995 submitted by papowell from host h4.

The C (Class) line is set by the lpr -C class option, and the value can be used to control printing. For example, the lpc class zone command would restrict job printing to only jobs with class zone.

The H (hostname), P (username), and J (jobname) fields are used to identify the host and user which sent the job, and to provide information to be displayed by lpq when reporting job status.

The L (print banner page) field is one that has caused many problems for users. RFC1179 indicates that its presence causes the banner page to be printed, and its absence suppresses banner pages. The lpr -h option suppresses putting this line into the control file. Usually the L field is a duplicate of the P field.

The M (mail information) field supplies a mail address for LPRng to send mail to when a job is completed. See Job Completion Notification Requested for more details.

The N (file name) field is usually provided to identify the file name corresponding to the data file. This can be used to print names on page separators, etc. LPRng largely ignores this line.

The I (indent) and W (width) fields are supposed to specify a page indent and width for printing. These fields are passed to filters if they are present.

The Q (queue name) field is an LPRng extension, and contains the name of the print queue the job was originally sent to. See qq printcap option for details.

The R (accounting info) field was added by LPRng to allow a specified account to be billed for job printing. The lpr -Rname option can be used to specify the accounting name.

The S (symbolic link) and U (unlink after printing) lines were used by the original BSD lpd print system to control how it passed files to the print server. LPRng ignores these lines. In fact, it will remove S lines and force the U lines to refer only to job data files. This closes a nasty security loophole on non-LPRng print spoolers.

The T (pr job title) is used with the lpr -p operation to supply a banner to the pr program.

The Z (filter options) value is specified with lpr -Zoption and is passed to the data file filters during the printing operation. See Filters for details on how the this is used during the printing process.

All of the lower case letters are reserved for format specifications for data files. In the control file, these are followed by the name of the data file to which they correspond. While in principle different data files in the control file can have different formats, this has not been implemented in any known spooling system. See Filters for details on how the data file formats are used during the printing process.