Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
PRINTCAP(5)		    BSD	File Formats Manual		   PRINTCAP(5)

     printcap -- printer capability data base


     The Printcap function is a	simplified version of the termcap(5) data base
     used to describe line printers.  The spooling system accesses the
     printcap file every time it is used, allowing dynamic addition and	dele-
     tion of printers.	Each entry in the data base is used to describe	one
     printer.  This data base may not be substituted for, as is	possible for
     termcap(5), 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 spooling utility supports an
     option, -P	printer, to allow explicit naming of a destination printer.

     Refer to the 4.3 BSD Line Printer Spooler Manual for a complete discus-
     sion on how to setup the database for a given printer.

     Refer to termcap(5) for a description of the file layout.

     Name	Type	  Default		 Description
     af		str	  NULL			 name of accounting file
     br		num	  none			 if lp is a tty, set the baud
						 rate (ioctl(2)	call)
     cf		str	  NULL			 cifplot data filter
     ct		num	  120			 TCP connection	timeout	in
     df		str	  NULL			 tex data filter (DVI format)
     ff		str	  `\f'			 string	to send	for a form
     fo		bool	  false			 print a form feed when	device
						 is opened
     gf		str	  NULL			 graph data filter (plot(3)
     hl		bool	  false			 print the burst header	page
     ic		bool	  false			 driver	supports (non
						 standard) ioctl to indent
     if		str	  NULL			 name of text filter which
						 does accounting
     lf		str	  /dev/console		 error logging file name
     lo		str	  lock			 name of lock file
     lp		str	  /dev/lp		 device	name to	open for
     ms		str	  NULL			 if lp is a tty, a comma-
						 separated,  stty(1) -like
						 list describing the tty modes
     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	filtering
     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
     py		num	  0			 page length in	pixels
     rf		str	  NULL			 filter	for printing FORTRAN
						 style text files
     rg		str	  NULL			 restricted group. Only
						 members of group allowed
     rm		str	  NULL			 machine name for remote
     rp		str	  ``lp''		 remote	printer	name argument
     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	  /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
     tf		str	  NULL			 troff data filter (cat
     tr		str	  NULL			 trailer string	to print when
						 queue empties
     vf		str	  NULL			 raster	image filter

     Each two-letter capability	has a human-readable alternate name.

     Short form	   Long	form
     af		   acct.file
     br		   tty.rate
     cf		   filt.cifplot
     ct		   remote.timeout
     df		   filt.dvi
     du		   daemon.user
     ff		   job.formfeed
     fo		   job.topofform
     gf		   filt.plot
     hl		   banner.last
     if		   filt.input
     lf		   spool.log
     lo		   spool.lock
     lp		   tty.device
     mc		   max.copies
     ms		   tty.mode
     mx		   max.blocks
     nf		   filt.ditroff
     of		   filt.output
     pc		   acct.price
     pl		   page.length
     pw		   page.width
     px		   page.pwidth
     py		   page.plength
     rf		   filt.fortran
     rg		   daemon.restrictgrp
     rp		   remote.queue
     rs		   daemon.restricted
     sb		   banner.short
     sc		   job.no_copies
     sd		   spool.dir
     sf		   job.no_formfeed
     sh		   banner.disable
     st		   spool.status
     tr		   job.trailer
     vf		   filt.raster

     If	the local line printer driver supports indentation, the	daemon must
     understand	how to invoke it.

     The lpd(8)	daemon creates a pipeline of filters to	process	files for var-
     ious printer types.  The filters selected depend on the flags passed to
     lpr(1).  The pipeline set up is:

	   p	   pr |	if regular text	+ pr(1)
	   none	   if	   regular text
	   c	   cf	   cifplot
	   d	   df	   DVI (tex)
	   g	   gf	   plot(3)
	   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 -n	login -h host acct-file

     The -c flag is passed only	if the -l flag (pass control characters	liter-
     ally) is specified	to lpr(1).  The	Width function and length specify the
     page width	and length (from pw and	pl respectively) in characters.	 The
     -n	and -h parameters specify the login name and host name of the owner of
     the job respectively.  The	Acct-file function is passed from the af
     printcap entry.

     If	no if is specified, of is used instead,	with the distinction that of
     is	opened only once, while	if is opened for every individual job.	Thus,
     if	is better suited to performing accounting.  The	of is only given the
     width and length flags.

     All other filters are called as:

	   filter -xwidth -ylength -n login -h host acct-file

     where width and length are	represented in pixels, specified by the	px and
     py	entries	respectively.

     All filters take stdin as the file, stdout	as the printer,	may log	either
     to	stderr or using	syslog(3), and must not	ignore SIGINT.

     When printing to a	remote printer using rm, it is possible	to use either
     if	or of.	If both	are specified, of is ignored.  Both filters behave the
     same except that they are passed different	arguments as above.  Specifi-
     cally, the	output filter is terminated and	restarted for each file	trans-
     mitted.  This is necessary	in order to pass the resulting size to the re-
     mote lpd(8).

     If	the -p flag was	passed to lpr(1), pr(1)	is not executed	locally, but
     is	requested of the remote	lpd(8).	 Any input filtering via if will
     therefore happen before pr(1) is executed rather than afterwards.

     If	lp is specified	as port@machine	(and rm	is not in use),	printing will
     be	send directly to the given port	on the given machine.

     Error messages generated by the line printer programs themselves (that
     is, the lpd(8) and	related	programs) are logged by	syslog(3) using	the
     LPR facility.  Messages printed on	stderr of one of the filters are sent
     to	the corresponding lf file.  The	filters	may, of	course,	use syslog(8)

     Error messages sent to the	console	have a carriage	return and a line feed
     appended to them, rather than just	a line feed.

     lpq(1), lpr(1), lprm(1), hosts.lpd(5), termcap(5),	lpc(8),	lpd(8),	pac(8)

     4.3 BSD Line Printer Spooler Manual.

     The printcap file format appeared in 4.2BSD.

4.2 Berkeley Distribution      December	11, 1993     4.2 Berkeley Distribution


Want to link to this manual page? Use this URL:

home | help