Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

termcap(5)

lpc(8)

lpd(8)

lpr(1)

lpq(1)

lprm(1)

PRINTCAP(5)                          BSD                           PRINTCAP(5)



NAME
     printcap - printer capability database

SYNOPSIS
     /etc/printcap

DESCRIPTION
     /etc/printcap is a simplified version of the termcap(5) database.
     However, printcap is used to describe line printers.  The spooling system
     accesses the printcap file every time it is used, allowing you to add and
     delete printers dynamically.  Each entry in the database is used to
     describe one printer. This database may not be substituted for, as is
     possible for termcap, 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, -Pprinter, to allow explicit naming of a destination printer.

     Refer to Managing BSD System Software for a complete discussion on how to
     set up 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 call)
     cf     str   NULL                cifplot data filter
     df     str   NULL                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                graph data filter (plot (3X) 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 filename
     lo     str   lock                name of lock file
     lp     str   /dev/lp             device name to open for output
     mc     num   infinite            maximum number of copies allowed
     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 program
     pc     str   NULL                command to run instead of directing
                                      output to lp or rp
                                      The command should behave like a printer.
                                      The value supplied for Domain/OS BSD is:
                                      "/com/prf -banner off -text -npage -headers off"
     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
     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   /usr/spool/lpd/lp   spool directory
     sf     bool  false               suppress form feeds
     sh     bool  false               suppress printing of burst page header
     st     str   status              status filename
     tf     str   NULL                troff data filter (phototypesetter)
     tr     str   NULL                trailer string to print when queue empties
     vf     str   NULL                raster image filter
     xc     num   0                   if lp is a tty, clear local mode bits (tty(4))
     xs     num   0                   like "xc" but set bits

     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
     literally) is specified to lpr.  width 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.  acct-file 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.

LOGGING
     Error messages generated by the line printer programs themselves (that
     is, the lp* 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
     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
     termcap(5), lpc(8), lpd(8), lpr(1), lpq(1), lprm(1).
     Managing BSD System Software.

NOTES
     Take steps to ensure that the printcap on each workstation in your
     network is identical.  Probably, the easiest way to do this is to
     maintain a public copy (/usr/spool/lpd/etc.printcap, for example) on one
     workstation and create links to this file from /etc/termcap on all the
     other workstations.

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