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

FreeBSD Manual Pages

  
 
  

home | help
PRINTCAP(5)		       lpd configuration		   PRINTCAP(5)

NAME
       printcap	- printer capability data base

SYNOPSIS
       printcap	database

DESCRIPTION
       The  format  of the LPRng printcap database was based on	the termcap(5)
       data base file format.  Entries in the printcap Each entry in the  data
       base is used to define various options and values to control the	print-
       ing and spooling	of print jobs.

LPD.CONF, SYSTEM AND USER PRINTCAP FILES
       Default configuration values are	read from the LPRng configuration file
       /usr/local/etc//lpd.conf,  consult the lpd.conf(5) man page for details
       about them.  The	system printcap	file /etc/printcap  contains  informa-
       tion  common  to	all users and the LPRng	printing system.  Finally, the
       user printcap files is in ${HOME}/.printcap and	contain	 user  config-
       urable  information  for	 printer  information.	The values in the user
       printcap	file override values in	the printcap file which	 override  the
       default values in the /usr/local/etc//lpd.conf file.

       The  user printcap file is used by client programs such as lpr ,	lprm ,
       lpq , and lpq to	allow the user to  define  either  a  special  set  of
       printers,  provide  additional  configuration information, or to	modify
       default settings	 in  the  /etc/printcap,  or  /usr/local/etc//lpd.conf
       file.

CAPABILITIES
       The printcap database files format is based on the termcap (5) database
       format,	modified  as follows.  Leading whitespace on each line is dis-
       carded, and blank lines or lines	which then start with a	comment	 char-
       acter  (#) are discarded.  A line which does not	start with a colon (:)
       or bar (|) starts a printer entry  definition.	Lines  ending  with  a
       backslash  (\)  are  assumed  to	continue to the	next line; this	is for
       compatibility with other	historical printcap  file  formats.   Trailing
       blanks and tabs (whitespace) for	an option value	are deleted unless the
       last  one  is  escaped  with a backslash	(``\'').  If a colon character
       value is	required then the  \:  escape  sequence	 can  be  used,	 e.g.:
       dest=ftp\://address/file.

       A  printer  definition starts with a  primary printer name, followed by
       zero or more alternative	printer	names, followed	by a  set  of  keyword
       entries and values.  For	example:

       #comment
       # primary printer name
       lp
       #alternate names
	|lp2|lp3
	|Example of a printer
	:sd=/usr/spool/LPD/lp
	:rw:lp=/dev/lp:mx#100
       include /etc/printcap/mainprintcap

       The special printcap definition include will read the named file, which
       must have an absolute pathname, as the next set of printcap entries.

       Keywords	 can  be 1 to an indefinite number of characters long, and are
       case sensitive.	Values for  keywords  can  be  strings	(:st=string:),
       signed	 integer    values    using    the    C	  language   notation,
       (:nu#12:max#-2:mask#0x1EF:), or flags (:flag: to	set to 1,  :flag@:  to
       clear  to  0).  Integer values must be representable as 32 bit 2's com-
       plement numbers;	care should be taken with extremely large numbers.

       If the primary name of a	printcap entry starts with a punctuation char-
       acter, then the entry may be referenced using the tc capability,	but is
       ignored otherwise.  This	 allows	 common	 printcap  information	to  be
       placed in a single entry.

       The  special  printcap  entry oh	(i.e. -	only this host)	may be used to
       select a	printcap entry for use by one or more hosts.  The oh entry can
       be a list of one	or more	host names or glob type	 of  patterns.	 These
       patterns	 are  first applied to the host's fully	qualified domain name,
       and then	used to	to a lookup of an IP  address.	 If  either  the  glob
       match  or the host has a	matching IP address then the printcap entry is
       selected	for use.  In addition, the server flag indicates that only the
       LPD server is to	use this  printcap  entry.   This  allows  client  and
       server printcap information be to be segregated in a simple manner.

       The  following  is  a  list of the keywords currently used by the LPRng
       software.  Many of these	keywords are used only by the LPD server, oth-
       ers are used by the client programs LPR,	LPC, LPRM, PAC,	as well	as the
       server.	In the Use column in the table below, an A stands for all pro-
       grams, D	stands for lpd,	and R stands for the client programs  such  as
       LPR.

       Some  of	these entries can only appear or have an effect	if they	are in
       the lpd.conf initialization file.  See lpd.conf(5) for further details.

ENTRIES	BY ALPHABETICAL	ORDER
       FL  Use Type Default	Description
       Xf  D   str  NULL	output filter for format X (used by lpd).
				'filter' sets default filter
       ab  D   bool false	always print banner, ignore lpr	-h option
       achk    D    bool false
				If TRUE	LPD and	the :as	specifies a remote host	or
				filter or the :af specifies a remote host or filter
				then after writing the accounting information to the
				destination a reply will be read.  The value of	the
				reply determines how the job is	to be handled.
       ae  D   str		accounting format for end of job or a program to run
				to record accounting information (see also af, la, ar
				and Accounting).
       af  D   str  NULL
				accounting file, filter, or remote accounting server
				(see also la, ar, as, ae, achk). If format is |/path then
				the program will be started and	accounting information
				will be	written	to the program STDIN.  If the format
				host%port, a tcp/ip connection will be made to port
				on host	and the	accounting information written to the
				remote host.  In both of these cases the write operation
				must succeed or	an error will result.  If the format
				is neither of these cases then the value will be treated
				as a file and accounting information appended to the file
				if it exists.  The accounting file will	not be created,
				it must	exist for LPD to append	data to	it.
				The :as	and :ae	fields have the	accounting information.
       ah  D   bool false	auto-hold - job	held until explicitly released
       all A   str  NULL	a list of all printers;	(see ALL PRINTERS)
       allow_duplicate_flags	A   bool    false
				allow duplicate	command	line flags; last overwrites earlier
       allow_getenv A		bool	(compile time)
				allows LPRng software to use the LPD_CONF environment variable
				to specify the location	of a configuration file.  This is
				for testing only.
       allow_user_logging	A   bool    false
				if mail	is requested using lpr -mhost%port,prot	operations,
				and the	allow_user_logging flag	is true,  then job logging
				information will be sent to host%port,prot.
       allow_user_setting  A  str NULL
				allow these users to impersonate other users with the
				lpr -U user@host, lpc -U user@host, etc., options
       append_z	    A		str
				append these options to	the -Z options for the job
       ar  D   bool true	write remote transfer accounting (if af, and as/ae set)
       architecture A		str (compile time)
				architecture the software was compiled for. (Obsolete.)
       as  D   str		accounting format for start of job or a	program	to run
				to record accounting information (see also af, la, ar
				and Accounting).
       auth    R    str		NULL
				client to server authentication	type
       be  D   str		banner printing	program	for end	(overrides bp, hl)
       bk  R   bool false	Berkeley-compatible: be	strictly RFC-compliant
				or more	exactly, BSD LPR compatible when sending jobs.
       bk_filter_options	D   str	(see source code)
				when bk	flag set, options for non OF print filters
       bk_of_filter_options	D   str	(see source code)
				when bk	flag set, options for OF print filters
       bkf R   bool false
				use bk_filter_options and bk_of_filter_options when
				invoking print filter.
       bl  D   str		banner line - sent to banner printer program
				default: $-'C:$-'n Job:	$-'J Date: $-'t
				expands	to:  Class:User	 Job: job Date:	date
				This is	to force compatibility with vintage print filters
				that require a non-standard banner string. Usually used	with
				:sb: option.
       bp  D   str		banner printing	program	(see hl)
				(default: configuration	variable default_banner_printer)
       bq_format    D		str l	format of output from bounce queue filters
       br  D   num  none	if lp is a tty,	set the	baud rate (see ty)
       break_classname_priority_link	A   flag    false
				Do not set priority to first letter of class name
       bs  D   str		banner printing	program	for start (overrides bp, hl)
       cf  D   str  NULL	cifplot	data filter
       check_for_nonprintable	R   bool    false
				lpr checks f and p formats for printable files
       check_for_protocol_violations	R   bool false
				check for RFC1179 protocol violations
       chooser D    str		load balance queue destination chooser program
       chooser_interval		D   num	10
				load balance queue does	checks for a
				destination queue available at this interval
       chooser_routine		D   bool    false
				use the	user provided chooser routine for this queue
       class_in_status		A   bool    true
				show class name	in lpq status rather than priority
       cm  A   str  NULL	comment	identifying printer (LPQ)
       config_file  A		str /usr/local/etc//lpd.conf
				location of LPRng configuration	information.  Compile
				time option only - see allow_getenv.
       connect_grace		A   num	0
				time between jobs to allow printer recovery
       connect_interval		A   num	10
				time between open or connection	attempts
       connect_timeout		A   num	10
				timeout	value for connection or	open
       control_file_line_order	D   str	NULL
				Put the	control	file lines in a	specific order
       control_filter		D   str	NULL
				Filter for control file. Used when sending job to remote
				spool queue.
       create_files D		bool	false
				create log, debug, etc., files automatically
       db  A   str  NULL	LPD debug options when serving this queue.
				See lf (log file) entry	as well.
       default_format		R   str	f
				default	format for printing jobs
       default_permission	D   str	A
				default	permission for operation
       default_printer		A   str	lp
				default	printer	for printing jobs
       default_priority		R   str	A
				default	priority for printing jobs
       default_remote_host	A   str	localhost
				default	remote host for	printing operations
       default_tmp_dir		A   str	/tmp
				default	temporary directory
       destinations D		str NULL
				names of printers that lpq/lprm	should talk to
				find a job that	has been processed by a	router
				script (see README.routing)
       df  D   str  NULL	tex data filter	(DVI format)
       done_jobs    D		num 1
				retain status for last N jobs
       done_jobs_max_age	num 0
				remove status older than N seconds (0 -	no removal)
       exit_linger_timeout	A   num	10
				socket SO_LINGER timeout value
       fd  D   bool false	if true, no forwarded jobs accepted
       ff  D   str  ``\f''	string to send for a form feed (see INITIALIZATION)
       filter  D    str		NULL
				default	filter to use for printing file
       filter_ld_path		D   str	(see source)
				the LD_LIBARY_PATH environment variable	value for filters
       filter_options		D   str	(see source code)
				when bk	flag clear, options for	non OF print filters
       filter_path  D		str (default '/bin:/usr/bin')
				the PATH environment variable value for	filters
       filter_poll_interval	D   num	30
				interval to poll OF filter
       filter_stderr_to_status_file D	bool	false
				set the	filter STDERR to the status file and do
				no report errors in the	queue status file.
       fo  D   bool false	print a	form feed when device is opened
       force_fqdn_hostname	A   bool    FALSE
				Force a	fully qualified	host name in control file
       force_ipadddr_hostname	A   bool    FALSE
				Force the IP address of	the host to be used for	the
				hostname in control file
       force_localhost		A   bool    TRUE
				Forces the clients programs (lpr, lpc, etc.)
				to send	all print jobs and requests to the server running
				on the localhost entry for action.  This flag effectively
				forces BSD LPR behavior.
       force_lpq_status		D   str	NULL
				Specifies a list of LPQ	formats	and hosts which	get status
				returned in this format.  For example
				force_lpq_status=s=pc*;l=mac* will cause hosts whose
				FQDN matches pc* to get	short status and those which
				match mac* to get long format.
       force_queuename		A   str	NULL
				When :qq: flag or use_queuename	configuration is enabled,
				specifies the queuename	to be used for control file Q
				information.
       ff_separator D		bool	false
				need form feeds	to separate job	files
       fq  D   bool false	print a	form feed when device is closed
       full_time    D		bool detailed time format specification	in log messages
       fx  A   str  NULL	valid output filter formats
				i.e. ``flp'' would allow f, l, and p
				default	is to allow all	formats
       gf  D   str  NULL	graph data filter (plot	(3X) format)
       generate_banner		D   bool    false
				generate a banner when forwarding job
       group   D    str		daemon	LPD server group id for	execution
       hl  D   bool false	print banner after job instead of before
       if  D   str  NULL	filter command,	run on a per-file basis
       ignore_requested_user_priority	D   bool    false
				Ignore the requested user priority when	ordering jobs.
				Prevents students... um... users from queue jumping.
       ipv6    A    bool	false	Use IPV6
       keepalive    A		bool	true
				set socket SO_KEEPALIVE	option
       kerberos_keytab		D   str	/etc/lpd.keytab
				Kerberos lpd server keytab file
       kerberos_life		D   str	NULL
				Kerberos lpd server key	lifetime
       kerberos_renew		D   str	NULL
				Kerberos lpd server key	renewal	time
       kerberos_server_principle    D	str NULL
				Kerberos remote	lpd server principle
       kerberos_service		D   str	lpr
				Kerberos service used in principle requests
       la  D   bool true	write local printer accounting (if af is set)
       ld  D   str  NULL	leader string printed on printer open (see INITIALIZATION)
       lf  D   str  ``log''	error and debugging log	file (LPD)
       lk  D   bool false	lock the lp device to force arbitration
       lockfile	    D		str /var/spool/lpd/lpd
				lpd lock file (used only in lpd.conf).
		       The lpd_port port value is appended
		       to the lockfile value to	provide	a unique lockfile
		       even when different versions of LPRng are running
		       on the same system.
       logger_destination	D   str	NULL
				destination for	logging	information.  Format is
				host%port
       logger_max_size		D   num	1024
				logger file maximum size in K
       logger_path  D		str NULL
				logger file pathname
       logger_timeout		D   num	0
				logger connection timeout.  0 is no timeout.
       longnumber   D		bool	false
				use 6 digit job	numbers
       lp  D   str  NULL	device name or pipe to send output to
       lpd_bounce   A		bool	FALSE
				Forces lpd to filter jobs and then forward them
				as a single file
				(See Bounce Queues)
       lpd_force_poll		A   bool    FALSE
				Forces lpd to periodically poll	lpd queues.
       lpd_poll_time		A   num	600
				Check queues for work at this interval;	start queues
				in groups of 'lpd_poll_servers_started'	at intervals
				of 'lpd_poll_start_interval' seconds
       lpd_poll_start_interval	A   num	10
				Start 'lpd_poll_servers_started' queue servers at this
				interval.
       lpd_poll_servers_started	A   num	10
				Start 'lpd_poll_servers_started' queues	at once
       lpd_port	    D		str printer
		       format is [ipaddr%]port.	 If the	ipaddr is present
		       then the	lpd listening socket is	bound to the specified
		       ip address and port only, otherwise it is bound to all
		       interfaces. If the port value is	not a number then the
				then the getservbyname() system	call is	used to	get the
				port number.
       lpd_printcap_path	D   str	(see source)
				printcap path for lpd, used instead of printcap	path
				(configuration value only)
       lpr_bounce   R		bool	true
				Forces lpr to filter jobs and then send	them.
				(See Bounce Queues)
       lpr_bsd R    bool	false
				when set, LPR -m will not take argument, but will use
				$USER value for	return mail address.
       mail_from    D		str NULL
				specifies the user part	of email From: address
       mail_operator_on_error	D   str	NULL
				send mail to this user when LPD	encounters printing error.
       max_connect_interval	A   num	60
				maximum	time between connection	attempts
       max_log_file_size	D   num	0
				maximum	log file size in K bytes (0 is unlimited)
				spool queue log	file truncated to min_log_file_size
				when value is nonzero and limited exceeded.
       max_servers_active	D   num	0
				maximum	servers	that LPD will allow to be active at one
				time.  0 selects the system default,  which is usually
				pretty small, perhaps 10. (configuration value only).
       max_status_line		D   num	79  maximum number of characters on an LPQ status line
       max_status_size		D   num	10  maximum size (Kbytes) of status file
       mc  R   num  1		maximum	copies allowed
       min_log_file_size	D   num	0   minimum size (Kbytes) of log file
       min_status_size		D   num	2   minimum size (Kbytes) of status file
       minfree D    str		0
				minimum	space (in K) for spool directory
       ml  R   num  32		minimum	printable characters for printable check
       ms_time_resolution	D   bool    false
				log time in milliseconds
       mx  R   num  0		maximum	job size in K, 0 = unlimited
       nb  D   num  0		if non-zero, do	a nonblocking open on lp device
       nf  D   str  NULL	DITROFF	data filter
       network_connect_grace	A   num	0
				time between attempts to send jobs to spooler
				Useful when dealing with network printer using LPD
				interface to allow a bit of time between jobs.
       nline_after_file		D   bool    false
				put the	N (filename) after the data file information
				in the control file.  Use to handle systems that want
				it that	way.
       of  D   str  NULL	output filter, run once	for all	output
				(used for banner printing, form	feeds between files)
       of_filter_options	D   str	(see source code)
				when bk	flag clear, options for	OF print filters
       oh  A   str  NULL	Specific printcap entry	for host;
				(printcap entry	ignored	unless IP address of host and
				entry value match.  Entry is used first	to do glob
				style match against the	host's fully qualified domain name,
				and then interpreted as	a general IP address)
       order_routine		D   bool    false
				use a user provided routine to generate	queue order
				information.
       originate_port		A   str	512 1023
				when originating a connection, use ports in this range.
       pass_env	    A		str LANG,LC_CTYPE,LC_NUMERIC,LC_TIME,LC_COLLATE,LC_MONETARY,LC_MESSAGES,LC_PAPER,LC_NAME,LC_ADDRESS,LC_TELEPHONE,LC_MEASUREMENT,LC_IDENTIFICATION,LC_ALL
				if not the LPD server, sanitize	and put	these variables
				in a filter environment	variable list.
       perms_path   A		str /usr/local/etc//lpd.perms
				location of perms file (used in	lpd.conf)
       pl  D   num  66		page length (in	lines)
       pr  D   str  ``/bin/pr''	pr program for p format
       prefix_o_to_z		D   bool    false
				prefix the control file	O line to the control file
				Z line.
       prefix_z	    D		str NULL
				prefix the specified options to	the control file
				Z line.
       prefix_z_to_o		D   bool    false
				prefix the control file	Z line to the control file
				O line.
       printcap_path		A   str	/etc/printcap
				location of printcap file (only	in lpd.conf)
       ps  A   str  ''status''	printer	status file name
       pw  D   num  132		page width (in characters)
       px  D   num  0		page width in pixels (horizontal)
       py  D   num  0		page length in pixels (vertical)
       qq  A   bool false	LPR - puts in the queue	name (Q	entry)
				in the job control file	when spooled or	transferred.
				LPD - when receiving or	transferring a job,
				if the queue name (Q entry) in the job control
				file is	not present,  puts in the queue	name.
       queue_control_file	D   str	control.%P
				name of	the queue control file
       queue_lock_file		D   str	%P
				name of	the queue lock file
       queue_status_file	D   str	status.%P
				name of	the queue status file
       queue_unspooler_file	D   str	unspooler.%P
				name of	the queue unspooler status file
       remote_support		A   str	NULL
				if non-null, specifies allowed operations to remote queue.
				R=lpr, M=lprm, Q=lpq, V	= lpq -v, C=lpc.  For example,
				remote_support=RM would	only allow LPR and LPRM	operations.
       remove_z	    D		str null
				remove these options from the control file Z line
       report_server_as		A   str	NULL
				use the	str value as the name of the server when reporting
				LPQ or LPC status.
       require_explicit_q	Require	a queue	to be specified, do not	use default
				queue from printcap.
       retry_econnrefused	A   bool    true
				if set,	retry a	connection to a	remote system when an
				ECONNREFUSED error is returned.
       retry_nolink D		bool	true
				if LPD is sending a job	or opening a device for
				printing and the value is true,	then the connection or
				device open is repeated	indefinitely.
       return_short_status	D   str	NULL
				Some legacy (non-LPRng)	LPQ programs expect 'short' status
				to be returned.	 This option allows you	to specify which hosts
				will get it.  The value	is a list of hosts and/or IP addresses
				and masks to which the LPD server will provide short status.
				For example:  return_short_status=192.8.0.0/16 will make LPD
				return short status to all requests from hosts in subnet
				192.8.0.0.  (See short_status_length)
       reuse_addr   A		bool	false
				if set,	use SO_REUSEADDR on outgoing connection	ports.
				This reduces the problems with exhausting port numbers.
				(usually only in lpd.conf)
       reverse_lpq_status	D   str	NULL
				When a lpq status request arrives from one of the specified
				hosts or IP addresses,	then the LPQ status format is inverted.
				For example, if	 reverse_lpq_status=host*,127.0.0.0/8,
				then when a LONG status	request	arrives	from host1 or from
				IP address 127.0.0.1,  the SHORT status	will be	returned.
       reverse_priority_order	D   bool    false
				Make highest priority A, lowest	Z
       rf  D   str  NULL	filter for printing FORTRAN style text files
       rg  A   str  NULL	(restrict to group members)
				Restrict use of	queue to users which are members of
				specified groups.
       rm  A   str  NULL	remote-queue machine (hostname)	(with rp)
       router  D    str		NULL	script that dynamically	re-routes a job
				(see README.routing)
       rp  A   str  NULL	remote-queue printer name (with	rm)
       rw  D   bool false	open the printer for reading and writing
       safe_chars   D		str NULL
				additional safe	characters for control file contents
       save_on_error		D   bool    false
				Save job when an error occurs to allow post-mortem
				diagnostics or reprinting.  This should	only be	set on
				print queues.  It is also a diagnostic aid.
       save_when_done		D   bool    false
				Save job when done (printed, transferred) to allow
				retry at a later time.	This should only be set	on
				print queues.  It is also a diagnostic aid.
       sb  D   bool false	short banner (one line only)
       sd  A   str  NULL	spool directory	(only ONE printer per directory!)
       send_block_format	A   bool    false
				Use the	LPRng extended 'block job' job transmission
				method to send a job to	a remote site.
       send_data_first		A   bool    false   send data files then control files
				when sending a job to a	remote host.
       send_failure_action	D   str	"remove"
				Action on print	or transmission	failure	after send_try
				attempts; use the following codes:
				'success' (JSUCC)  - treat as successful
				'abort'	  (JABORT) - abort printer
				'retry'	  (JRETRY) - retry job
				'remove'  (JREMOVE)- remove job
				'hold'	  (JHOLD)  - hold job
				If the value is	"|/filter", the	filter will be run and
				the number of attempts can be read from	standard input.
				The filter should exit with one	of the error codes listed
				above to cause the appropriate action.
       send_job_rw_timeout	A   num	6000
				timeout	on read/write operations when sending job to
				printer	or remote host (0 value	is no timeout)
       send_query_rw_timeout	A   num	6000
				timeout	on read/write operations when performing a status
				operation (0 value is no timeout)
       send_try	    A		num 3
				number of times	to try sending
				or printing a job. 0 is	infinite.
       sendmail	    D		str /usr/sbin/sendmail -oi -t
				sendmail command to send mail to user.	Flags must be set
				so that	address	and other information is taken from
				standard input.
       server  A    bool	false	printcap entry for server only
       server_auth_command	A   str	NULL
				authentication command for server program
       server_tmp_dir		D   str	/tmp
				temporary directory for	server to create files when there
				is no spool directory.
       server_user  D		str daemon  server user	name used in authentication operations
       sf  D   bool true	suppress form feed separators between job files
       sh  D   bool false	suppress headers and/or	banner page
       shell   D    str		/bin/sh
				SHELL environment variable value for filters
       short_status_length	D   num	1
				If the return_short_status value is used and has a match against
				a requesting address, this amount of status is set by the
				short_status_length option.  For most legacy systems a 1 is
				suitable (1 line of status).
       socket_linger		A   num	10
				if nonzero, forces a SO_LINGER operation to be done
				on all TCP/IP connections.  This usually corrects a problem
				with missing last data transmissions to	remote hosts.
       spool_dir_perms		D   num	042700	permissions for	spool directory
       spool_file_perms		D   num	0600	permissions for	spool file
       ss  D   str  NULL	name of	queue that server serves (with sv)
       ssl_XXX D    str		NULL
				SSL authentication and encryption options.
				See lprng_certs(1) for details.
       ssl_ca_file  str		A   /usr/local/etc//ssl.ca/ca.crt
				SSL signing certificate	file
       ssl_ca_path  str		A   NULL
				SSL signing certificate	directory. Default is
				directory containing ssl_ca_file.
       ssl_server_cert		str A	/usr/local/etc//ssl.server/server.crt
				SSL server certificate
       ssl_server_password	str A
				SSL server certificate password
       stalled_time D		num 120
				Time after which to report an active job as stalled
       stop_on_abort		D   bool    true
				Stop processing	queue when print filter	aborts.
       stty    D    str		NULL	stty settings for serial connected printer
       suspend_of_filter	D   bool    true
				suspend	OF filter and restart.	If false, close	filter
				and start new one for each activity.
       sv  D   str  NULL	names of servers for queue (with ss)
       syslog_device		D   str	/dev/console
				    name of syslog device to use if no syslog facility
       tc  A   str  NULL	reference to a printcap	entry to include as part of
				the current entry.
       tf  D   str  NULL	troff data filter (C/A/T phototypesetter)
       tr  D   str  NULL	trailer	string to print	when queue empties
       translate_format		D   str	NULL
				translate job format (similar to tr(1) utility)
				on outgoing jobs.
				Example: translate_format=pfml
				p format changed to f, m format	to l
       translate_incoming_format    D	str NULL
				translate job format (similar to tr(1) utility)
				on incoming jobs.  See translate_format.
       use_date	    A		bool	true add date line ('D') to control file
       use_identifier		R   bool    true
				add job	identifier lines ('A') in the control file
       use_info_cache		D   bool    true    cache printcap information
       use_shorthost		R   bool    false
				use only the hostname for job control
				and data file names.  Host information in job file
				will still be fully qualified domain name.
       user    D    str		daemon	LPD effective user (EUID) for SUID operations
       wait_for_eof D		bool	true
				wait for EOF on	input when readable IO device,
				do not close immediately at job	end.
       vf  D   str  NULL	(Versatek) raster image	filter

ENTRIES	BY FUNCTION
       See the alphabetical listing for	detailed information.

       Filters and Page	Formats
       Xf  D   str  NULL	output filter for format X (used by lpd)
				'filter' sets default filter
       cf  D   str  NULL	cifplot	data filter
       control_filter		D   str	NULL
				Filter for control file. Used when sending job to remote
				spool queue.
       df  D   str  NULL	tex data filter	(DVI format)
       direct_read  D		bool	false
				if true, filters are given direct access to file.
				This means no progress indication possible.
       fx  A   str  NULL	valid output filter formats
				i.e. ``flp'' would allow f, l, and p
				default	is to allow all	formats
       gf  D   str  NULL	graph data filter (plot	(3X) format)
       if  D   str  NULL	filter command,	run on a per-file basis
       lpd_bounce   R		bool	false
				Forces lpd to filter jobs and then forward them.
				(See Bounce Queues)
       lpr_bounce   R		bool	false
				Forces lpr to filter jobs and then send	them.
				(See Bounce Queues)
       nf  D   str  NULL	DITROFF	data filter
       of  D   str  NULL	output filter, run once	for all	output
       pl  D   num  66		page length (in	lines)
       pr  D   str  ``/bin/pr''	pr program for p format
       pw  D   num  132		page width (in characters)
       px  D   num  0		page width in pixels (horizontal)
       py  D   num  0		page length in pixels (vertical)
       rf  D   str  NULL	filter for printing FORTRAN style text files
       translate_format		D   str	NULL
				translate job format (similar to tr(1) utility)
				only valid when	transferring to	remote spool queue.
				Example: translate_format=pfml
				p format changed to f, m format	to l
       tf  D   str  NULL	troff data filter (C/A/T phototypesetter)
       vf  D   str  NULL	(Versatek) raster image	filter

       Banners
       ab  D   bool false	always print banner, ignore lpr	-h option
       be  D   str		banner printing	program	for end	(overrides bp, hl)
       bp  D   str		banner printing	program	(use hl	to print banner	at end)
       bs  D   str		banner printing	program	for start (overrides bp, hl)
       hl  D   bool false	print banner after job instead of before
       sb  D   bool false	short banner (one line only)
       sh  D   bool false	suppress headers and/or	banner page, overrides ab

       Accounting
       ae  D   str		accounting format for end of job or a program to run
		       to record accounting information	(see also af, la, ar
				and Accounting).
       af  D   str  NULL	name of	accounting file	(see also la, ar)
       ar  D   bool true	write remote transfer accounting (if af, and as/ae set)
       as  D   str		accounting format for start of job or a	program	to run
		       to record accounting information	(see also af, la, ar
				and Accounting).
       la  D   bool true	write local printer accounting (if af is set)

       Queue control
       ah  D   bool false	auto-hold - job	held until explicitly released
       bk  R   bool false	backwards-compatible: be strictly RFC-compliant
       bkf R   bool false	backwards-compatible filter: use Berkeley filter options
       bqfilter	    D		bool	false					       if a bounce queue (sends	jobs to	remote site)
				then when bqfilter true	and a format filter is specified,
				sends data files through format	filter before transfer.
				See also 'qq'.
       cd  D   str  NULL	control	information directory for LPD server
       cm  A   str  NULL	comment	identifying printer (LPQ)
       fd  D   bool false	if true, no forwarded jobs accepted
       lf  D   str  ``log''	error and debugging log	file (LPD)
       longnumber   D		bool	false
				use 6 digit job	numbers
       mc  R   num  1		maximum	copies allowed
       ml  R   num  32		minimum	printable characters for printable check
       minfree D    str		0   minimum space (Kb) to be left in spool filesystem
				You can	also use nnnM for nnn megabytes.
       mx  R   num  0		maximum	job size (1Kb blocks, 0	= unlimited)
       ps  A   str  ''status''	printer	status file name
       nw  A   bool false	spool dir is on	an NFS file system
				(take precautions when reading/writing files)
       qq  A   bool false	place queue information	in control file. See
				alphabetical for details.
       rm  A   str  NULL	remote-queue machine (hostname)	(with rp)
       rp  A   str  NULL	remote-queue printer name (with	rm)
       sd  A   str  NULL	spool directory	(only ONE printer per directory!)
       ss  D   str  NULL	name of	queue that server serves (with sv)
       sv  D   str  NULL	names of servers for queue (with ss)
       sc  R   bool false	suppress multiple copies
       use_auth	    A		str NULL authentication	to use
       use_date	    A		bool	true add date line ('D') to control file
       use_identifier		R   bool    true
				add job	identifier lines ('A') in the control file
       use_shorthost		R   bool    false				       use only	the hostname for job control
				and data file names.  Host information in job file
				will still be fully qualified domain name.

       Connection and Interface	to Printer
       db  A   num  0		debug level when using this printer
       connect_interval		A   num	10
				time between open or connection	attempts
       connect_timeout		A   num	10
				timeout	value for connection or	open
				(0 is infinite number)
       ff  D   str  ``\f''	string to send for a form feed (see INITIALIZATION)
       fo  D   bool false	print a	form feed when device is opened
       fq  D   bool false	print a	form feed when device is closed
       ld  D   str  NULL	leader string printed on printer open (see INITIALIZATION)

       lp  D   str  NULL	device name or pipe to send output to
       lk  D   bool false	lock the lp device to force arbitration
       max_connect_interval	A   num	60
				maximum	time between connection	attempts
       nb  D   num  0		if non-zero, do	a nonblocking open on lp device
       retry_econnrefused	A   bool    true
				if set,	retry a	connection to a	remote system when an
				ECONNREFUSED error is returned.
       retry_nolink D		bool	true
				if LPD is sending a job	or opening a device for
				printing and the value is true,	then the connection or
				device open is repeated	indefinitely.
       rs  D   num  300		number of seconds between spool	queue status scans
       rt  D   num  3		number of times	to try printing	(0=infinite).
       rw  D   bool false	open the printer for reading and writing
       save_on_error		D   bool    false
				See above.
       save_when_done		D   bool    false
				See above.
       send_failure_action	D   str	remove
				See above.
       send_try			alias for rt
       sf  D   bool true	suppress form feed separators between job files
       socket_linger		A   num	10
				if nonzero, forces a SO_LINGER operation to be done
				on all TCP/IP connections.  This usually corrects a problem
				with missing last data transmissions to	remote hosts.
       tr  D   str  NULL	trailer	string to print	when queue empties

       Serial Line Setup
       br  D   num  none	if lp is a tty,	set the	baud rate (see ty)
       stty    D    str		NULL	stty commands to set output line characteristics
				alias is sy, ms
       xs  D   num  0		like `xc' but set bits (see STTY)

       Miscellaneous
       all A   str  NULL	a list of all printers;	(see ALL PRINTERS)
       destinations D		str NULL
				names of printers that lpq/lprm	should talk to find
				a job that has been processed by a router script
				(see README.routing)
       forward_auth D		str NULL
				server to server authentication	type, e.g. kerberos
       force_localhost		A   bool    TRUE
				Forces the clients programs (lpr, lpc, etc.)
				to send	all print jobs and requests to the server running
				on the localhost entry for action.  This flag effectively
				forces BSD LPR behaviour.
       force_queuename		A   str	NULL
				See above.
       logger_destination	D   str	NULL
				destination for	logging	information.  Format is
				host[%port][,(TCP|UDP)]
       oh  D   str  NULL	Specific printcap entry	for host. See above.
       remote_support		A   str	RMQC
				if non-null, specifies allowed operations to remote queue.
				R=lpr, M=lprm, Q=lpq, C=lpc
       router  D    str		NULL	script that dynamically	re-routes a job
				(see README.routing)
       server  A    bool	false	printcap entry for server only
       server_auth_command	D   str	NULL
				authentication command for server to use.
       tc  A   str  NULL	reference to a printcap	entry to include as part of
				the current entry.
       use_auth	    D		str NULL
				client to server authentication	type, e.g. kerberos
       user_auth_command	R   str	NULL
				authentication command for user	(client	program)

FILTERS
       By convention, all output filter	names have the form Xf,	where X	is the
       lower case letter corresponding to the lpr formatting option.  The fil-
       ter option can specify a	default	filter for job files.

       The of filter is	started	for each job and is used to print  the	banner
       page  and any FF	separators between individual files of the job.	 It is
       sent a special stop sequence by the lpd server, and must	suspend	opera-
       tions until sent	a SIGCONT signal.  A file or job filter	is  run	 sepa-
       rately  for each	file; at the end of the	job the	of filter is restarted
       and used	to print the trailing banner (if any) and FF separators.

       Filters are invoked with	a standard  set	 of  options  defined  by  the
       bk_filter_options  (backwards  compatible), bk_of_filter_options	(back-
       wards compatible	OF filter),  and  filter_options  configuration	 vari-
       ables.	See  the lpd(8)	manual page for	details.  If the first charac-
       ters of the filter specification	are -$,	i.e.- Xf=-$ filter,  then  the
       command line options are	not added.  Currently, the options are:
       bk_filter_options $P $w $l $x $y	$F $c $L $i $J $C $0n $0h $-a
       bk_of_filter_options $w $l $x $y
       filter_options $C $F $H $J $L $P	$Q $R $Z $a $c $d \
	   $e $f $h $i $j $k $l	$n $s $w $x $y $-a

SPOOL QUEUES
       Printcap	 entries  which	 have  a spool directory value (sd) are	called
       spool queues.  Jobs sent	to a printer with a spool queue	are  place  in
       the  spool  directory.	When  checking	the  spool queue for jobs, the
       server will check to see	if there is a printcap file in	the  directory
       with  the name printcap.host.  If there is, the additional printcap in-
       formation is processed and used by the server.

       If the spool directory is NFS exported, then remote hosts  can  manipu-
       late  the  spool	 entries directly; this	can have catastrophic effects,
       especially in systems where the NFS implementation  has	defects.   The
       printcap	 information  is  particularly	vulnerable to exploitation, as
       well as symbolic	links, jobs which cannot be removed, etc.

LOCAL PRINTERS
       Local printers have an lp entry,	which is the device that output	should
       be sent to, usually a serial port tty.  PLP supplements this  by	 using
       the lp field to indicate	a remote printer, or by	allowing communication
       with the	printer	using a	separate program, known	as an lp-pipe, instead
       of  a  serial  line.  If	the printcap lp	entry contains a string	of the
       form printer@host, jobs are forwarded to	the specified  remote  printer
       on  the host.  If the printcap lp entry contains	a string of the	form |
       command args , the command command is run, with the  arguments  args  .
       This can	be used	to communicate with printers connected to network ter-
       minal  servers,	some  TCP/IP-capable printers, and just	about anything
       you can hack up a communication program for. Read the LPRng Manual  for
       more details.

STTY OPTIONS
       The  stty  printcap  parameter recognizes a set of stty(1) options that
       can be used to set serial line characteristics for the  printer.	  How-
       ever, due to the	differences between implementations of UNIX, there are
       several	sets  of  ty  options supported. Invoke	lpd(8) with the	``-v''
       command-line option to see which	set your installation is using.

       Systems using the sgtty tty manipulation	interface may use the  follow-
       ing stty(1) options:

       bs0	       bs1	       [-]cbreak       cooked	       cr0
       cr1	       cr2	       cr3	       [-]decctlq      [-]echo
       [-]even	       ff0	       ff1	       [-]lcase	       [-]litout
       nl0	       nl1	       nl2	       nl3	       [-]nl
       [-]noflsh       new	       [-]nohang       old	       [-]odd
       [-]raw	       start	       stop	       tab0	       tab1
       tab2	       [-]tabs	       [-]tandem       tek	       ti700
       [-]tilde	       tn300	       tty33	       tty37	       vt05
       [-]evenp	       [-]oddp	       [-]pass8

       Systems using termio may	use the	following options:

       [-]ignbrk       [-]brkint       [-]ignpar       [-]parmrk       [-]inpck
       [-]istrip       [-]inlcr	       [-]igncr	       [-]icrnl	       [-]iuclc
       [-]ixon	       [-]ixany	       [-]ixoff	       [-]decctlq      [-]tandem
       [-]imaxbel      [-]opost	       [-]olcuc	       [-]onlcr	       [-]ocrnl
       [-]onocr	       [-]onlret       [-]ofill	       [-]ofdel	       [-]cstopb
       [-]cread	       [-]parenb       [-]parodd       [-]hupcl	       [-]clocal
       [-]loblk	       [-]parity       [-]evenp	       [-]oddp	       [-]stopb
       [-]hup	       [-]crtscts      [-]isig	       [-]noisig       [-]icanon
       [-]cbreak       [-]xcase	       [-]echo	       [-]echoe	       [-]echok
       [-]crterase     [-]lfkc	       [-]echonl       [-]noflsh       [-]tostop
       [-]echoctl      [-]ctlecho      [-]echoprt      [-]prterase     [-]echoke
       [-]crtkill      [-]lcase	       [-]nl	       [-]litout       [-]pass8
       [-]raw	       [-]sane	       [-]cooked       [-]nopost       fill
       nl0	       nl1	       cr0	       cr1	       cr2
       cr3	       tab0	       tab1	       tab2	       tab3
       bs0	       bs1	       vt0	       vt1	       ff0
       ff1	       cs5	       cs6	       cs7	       cs8
       nul-fill	       del-fill	       -tabs

       And systems using termios may use the following options:

       [-]ignbrk       [-]brkint       [-]ignpar       [-]parmrk       [-]inpck
       [-]istrip       [-]inlcr	       [-]igncr	       [-]icrnl	       [-]iuclc
       [-]ixon	       [-]ixany	       [-]ixoff	       [-]imaxbel      [-]pass8
       [-]opost	       [-]olcuc	       [-]onlcr	       [-]ocrnl	       [-]onocr
       [-]onlret       [-]ofill	       [-]ofdel	       [-]tabs	       nl0
       nl1	       cr0	       cr1	       cr2	       cr3
       tab0	       tab1	       tab2	       tab3	       bs0
       bs1	       vt0	       vt1	       ff0	       ff1
       cs5	       cs6	       cs7	       cs8	       [-]cstopb
       [-]cread	       [-]parenb       [-]parodd       [-]hupcl	       [-]clocal
       [-]crtscts      [-]evenp	       [-]parity       [-]oddp	       [-]pass8
       [-]isig	       [-]icanon       [-]xcase	       [-]echo	       [-]echoe
       [-]echok	       [-]echonl       [-]noflsh       [-]tostop       [-]iexten
       [-]echoctl      [-]ctlecho      [-]echoprt      [-]prterase     [-]echoke
       [-]crtkill      [-]flusho       [-]pendin

       The fc ,	fs , xc	, and xs printcap entries are obsolete,	and if present
       with non-zero values will abort print job processing.

INITIALIZATION
       Many  printers  require	an initialization string to be sent to them in
       order to	configure their	operation.  The	leader (ld) and	 trailer  (tr)
       strings are sent	at the start and end of	job processing.	 These strings
       are  interpreted	 using the C language conventions for character	repre-
       sentation: \nnn is replaced with	a character with  the  value  nnn,  \n
       with a new line,	\r with	a carriage return, and so forth.

ALL PRINTERS
       The  LPRng software has the capability to use a remote database for ob-
       taining printcap	and other information.	One of the difficulties	arises
       when a list of all printers available is	needed.	  By  convention,  the
       special	printer	 name  all  is	reserved for this information; the all
       field is	a list of printers separated by	spaces	or  punctuation.   For
       example:

       #all printers
       all:all=lp1,lp2,lp3,lp4

ACCOUNTING
       Accounting  in  the  LPRng package has evolved over time	to accommodate
       new requirements.  The general approach is to use either	a  simple  log
       to  file	method in which	the accounting information is written to a log
       file or a more complex log to program method in	which  the  accounting
       information  is	written	 to a program.	The information	and method and
       actions taken are specified by the following entries:
       :as  - start of job accounting
       :ae  - end of job accounting
       :af  - default job accounting
       :achk - used accounting for authorization.

       The value of the	:as and	:ae options are	either a string	which is  used
       as  the accounting information or a program which is executed to	log or
       save the	accounting information.	 If a program  is  executed  then  the
       value  of the :af entry is ignored and the program is run to record the
       job accounting information.  For	example:
       # string	for information	logging
       :as=jobend $H $n	$P $k $b $t
       :ae=jobstart $H $n $P $k	$b $t

       :as=|/usr/local/libexec/logjobstart $H $n $P $k $b $t
       :ae=|/usr/local/libexec/logjobend $H $n $P $k $b	$t

       If the :as or :ae value is a string then	the :af	information is used to
       record the accounting information:
       af=|/path    - run program, :as or :ae written to
		      program STDIN
       af=host%port - tcp/ip connection	to port	on host,
		      :as or :ae written to connection
       af=path	    - treat path as a file pathname,
		      if file exists append :as	or :ae
		      to file.

       If the :achk flag is set	then this is modified as follows.
       If the :as entry	specifies a program or :af entry specifies a
       program or remote host (i.e. - logging using program) then
       after accounting	information has	been written to	the
       program or connection a response	will be	read from the program
       STDOUT or the connection.
       This response is	expected to be an ASCII	string.
       If the line is blank or starts with ACCEPT then the job will be printed,
       HOLD will hold the job,	REMOVE will remove the job,
       and ABORT or a non-recognizable response	will cause printing to be aborted.

       If the output is	written	to a program then the exit status
       of the program can be used as well.
       If the program exits with nonzero status	then the
       exit code controls the disposition:
       JHOLD, JREMOVE, and JABORT will hold, remove,
       or abort	the job	respectively.
       If the exit status is 0,	then
       the filter's STDOUT will	be read	and processed as described above.

BOUNCE QUEUES AND PRINT	FORMATS
       If the lp option	value has the format :lp=pr@host or job	forwarding  is
       specified  by  :rp=pr:rm=host  then  the	 normal	operation is simple to
       store and forward the print jobs.  If filters are  specified  then  the
       job files are first filtered and	then the output	of the filters is sent
       to  the	destination.   For historical reasons, a spool queue that does
       filtering   and	 forwarding   is   called   a	bounce	 queue.	   The
       bounce_queue_format (default 'f') specifies the output for the filtered
       files.	If  this  is  not desirable the	translate_format option	can be
       used to specify a format.  The option has the form SdSdSdN, where S  is
       the  original format and	d is the final format.	If none	of the formats
       match and there is an odd number	of formats then	the last one is	 used.
       For example, pfmlf would	convert	formats	p to f,	m to l,	and v to f.

       The  :lpd_bounce	flag concatenate the output of the filters and the re-
       sult will be sent as a single job file to the destination.  This	facil-
       ity is useful when handling legacy print	spooler	applications  that  do
       not  understand	the  RFC1179 copy, etc., options.  The first letter of
       the bounce_queue_format (default	'f') is	used as	the output  file  for-
       mat.

       The  lpr_bounce	printcap  flag	can  be	used to	cause LPR to do	bounce
       queue filtering in exactly the same manner as the server.  This	should
       be  used	with caution as	missing	filters	on the client system can cause
       unexpected behavior.

KERBEROS, AND OTHER AUTHENTICATION METHODS
       LPRng supports built in kerberos	authentication.	 To enable  this,  the
       LPD  protocol  has been extended	to provide a way to transfer authenti-
       cated and/or encrypted jobs and commands.  The details are  covered  in
       the LPRng HOWTO documentation.

       Also, SSL can be	used.  See lprng_certs(1) for details.

FILES
       The  files used by LPRng	are set	by values in the printer configuration
       file.  The following are	a commonly used	set of default values.
       /usr/local/etc//lpd.conf			    LPRng configuration	file
       ${HOME}/.printcap			    user printer description file
       /etc/printcap				    printer description	file
       /usr/local/etc//lpd.perms		    permissions
       /var/run/lpd				    lock file for queue	control
       /var/spool/lpd				    spool directories
       /var/spool/lpd/QUEUE/control		    queue control
       /var/spool/lpd/QUEUE/log			    trace or debug log file
       /var/spool/lpd/QUEUE/acct		    accounting file
       /var/spool/lpd/QUEUE/status		    status file

SEE ALSO
       lpd.conf(5),  lpc(8),  lpd(8),  checkpc(8),  lpr(1),  lpq(1),  lprm(1),
       lpd.perms(5), pr(1), lprng_certs(1), lprng_index_certs(1).

AUTHOR
       Patrick Powell <papowell@lprng.com>.

DIAGNOSTICS
       Most  of	the diagnostics	are self explanatory.  If you are puzzled over
       the exact cause of failure, set the debugging level on  (-D5)  and  run
       again.	The  debugging information will	help you to pinpoint the exact
       cause of	failure.

HISTORY
       LPRng is	a enhanced printer spooler system with	functionality  similar
       to  the	Berkeley  LPR  software.   The LPRng developer mailing list is
       lprng-devel@lists.sourceforge.net;      subscribe      by      visiting
       https://lists.sourceforge.net/lists/listinfo/lprng-devel	  or   sending
       mail to lprng-request@lists.sourceforge.net with	the word subscribe  in
       the body.
       The software is available via http://lprng.sourceforge.net

LPRng				  2006-12-09			   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+Ports+14.3.quarterly>

home | help