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

FreeBSD Manual Pages

  
 
  

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

NAME
       printcap	-- printer capability data base

SYNOPSIS
       printcap

DEPRECATION NOTICE
       This  facility  is  scheduled  for  removal  prior  to  the  release of
       FreeBSD 16.0.

DESCRIPTION
       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
       deletion	 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.

CAPABILITIES
       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
						   seconds
       df	  str	    NULL		   tex	data  filter (DVI for-
						   mat)
       du	  num	    1			   UID to run daemon as
       ff	  str	    `\f'		   string to send for  a  form
						   feed
       fo	  bool	    false		   print   a  form  feed  when
						   device is opened
       gf	  str	    NULL		   graph data filter  (plot(3)
						   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 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
						   output,  or port@machine to
						   open	a TCP socket
       mc	  num	    0			   maximum  number  of	copies
						   which  can  be requested on
						   lpr(1), zero	= unlimited
       ms	  str	    NULL		   if lp is a  tty,  a	comma-
						   separated,	  stty(1)-like
						   list	 describing  the   tty
						   modes
       mx	  num	    0			   maximum   file   size   (in
						   BUFSIZ blocks), zero	=  un-
						   limited
       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
						   program
       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)
       rc	  bool	    false		   when	sending	 to  a	remote
						   host,  resend  copies  (see
						   below)
       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	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
       sr	  str	    NULL		   file	    name    to	  hold
						   statistics of each datafile
						   as it is received
       ss	  str	    NULL		   file	   name	   to	  hold
						   statistics of each datafile
						   as it is sent
       st	  str	    status		   status file name
       tf	  str	    NULL		   troff   data	  filter  (cat
						   phototypesetter)
       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
       rc	     remote.resend_copies
       rf	     filt.fortran
       rg	     daemon.restrictgrp
       rm	     remote.host
       rp	     remote.queue
       rs	     daemon.restricted
       rw	     tty.rw
       sb	     banner.short
       sc	     job.no_copies
       sd	     spool.dir
       sf	     job.no_formfeed
       sh	     banner.disable
       sr	     stat.recv
       ss	     stat.send
       st	     spool.status
       tf	     filt.troff
       tr	     job.trailer
       vf	     filt.raster

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

FILTERS
       The lpd(8) daemon creates a pipeline of filters to  process  files  for
       various 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 lit-
       erally)	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  ei-
       ther to stderr or using syslog(3), and must not ignore SIGINT.

REMOTE PRINTING
       When  printing  to a remote printer using rm, it	is possible to use ei-
       ther if or of.  If both are specified, of is ignored.  Both filters be-
       have the	same except that they are passed different arguments as	above.
       Specifically, the output	filter is terminated and  restarted  for  each
       file  transmitted.   This  is  necessary	in order to pass the resulting
       size to the remote 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.

       There  are  some	 models	 of  network  printers	which accept jobs from
       lpd(8), but they	ignore the control file	for a  job  and	 simply	 print
       each  data  file	as it arrives at the printer.  One side-effect of this
       behavior	is that	the printer  will  ignore  any	request	 for  multiple
       copies  as  given with the -# flag on the lpr(1)	command.  The rc entry
       will cause lpd(8) to resend each	data file for each copy	that the  user
       originally  requested.  Note that the rc	entry should only be specified
       on hosts	which send jobs	directly to the	printer.

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

TRANSFER STATISTICS
       When a print job	is transferred to a remote machine (which might	be an-
       other  unix box,	or may be a network printer), it may be	useful to keep
       statistics on each transfer.  The sr and	ss options indicate  filenames
       that  lpd  should  use  to store	such statistics.  A statistics line is
       written for each	datafile of a job as the file is  successfully	trans-
       ferred.	 The  format  of the line is the same for both the sending and
       receiving side of a transfer.

       Statistics on datafiles being received would be used on a print server,
       if you are interested in	network	performance between a variety  of  ma-
       chines  which  are sending jobs to that print server.  The print	server
       could collect statistics	on the speed of	each print job as  it  arrived
       on the server.

       Statistics  on datafiles	being sent might be used as a minimal account-
       ing record, when	you want to know who  sent  which  jobs	 to  a	remote
       printer,	 when they were	sent, and how large (in	bytes) the files were.
       This will not give include any idea of how many pages were printed, be-
       cause there is no standard way to get that information back from	a  re-
       mote (network) printer in this case.

LOGGING
       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
       syslogd(8) themselves.

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

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

       4.3 BSD Line Printer Spooler Manual.

HISTORY
       The printcap file format	appeared in 4.2BSD.

FreeBSD	ports 15.quarterly     October 11, 2000			   PRINTCAP(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=printcap&sektion=5&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help