PAP(1) Netatalk 2.2 PAP(1)NAME
pap - client interface to remote printers using Printer Access Protocol
SYNOPSIS
pap [-A address] [-c] [-d] [-e] [-E] [-p nbpname] [-s statusfile] [-w] [-W] [FILES]
DESCRIPTION
pap is used to connect and send files to an AppleTalk connected printer using the Apple Printer Access Protocol (PAP). When pap starts
execution, it tries to open a session with the printer using PAP, and then downloads the files to the printer.
If no files are given on the command line, pap begins reading from standard input.
If no printer is specified on the command line, pap looks for a file called .paprc in the current working directory and reads it to obtain
the nbpname of a printer. Blank lines and lines that begin with a `#' are ignored. type and zone default to LaserWriter and the zone of
the local host, respectively.
Note that pap is designed to be useful as a communication filter for sending lpd(8) spooled print jobs to AppleTalk connected printers. See
psf(8) for hints on how to use it this way.
OPTIONS -A address
Connect to the printer with Appletalk address address and do not consult the .paprc file to find a printer name. See atalk_aton(3) for
the syntax of address.
-c
Take cuts. The PAP protocol specified a simple queuing procedure, such that the clients tell the printer how long they have been
waiting to print. This option causes pap to lie about how long it has been waiting.
-d
Enable debug output.
-e
Send any message from the printer to stderr instead of stdout. psf(8) invokes pap with this option.
-E
Don't wait for EOF from the printer. This option is useful for printers which don't implement PAP correctly. In a correct
implementation, the client side should wait for the printer to return EOF before closing the connection. Some clients don't wait, and
hence some printers have related bugs in their implementation.
-p nbpname
Connect to the printer named nbpname and do not consult the .paprc file to find a printer name. See nbp_name(3) for the syntax of
nbpname.
-s statusfile
Update the file called statusfile to contain the most recent status message from the printer. pap gets the status from the printer
when it is waiting for the printer to process input. The statusfile will contain a single line terminated with a newline. This is
useful when pap is invoked by psf(8) within lpd's spool directory.
-w
Wait for the printer status to contain the word "waiting" before sending the job. This is to defeat printer-side spool available on HP
IV and V printers.
-W
Wait for the printer status to contain the word "idle" before sending the job. This is to defeat printer-side spool available on HP IV
and V printers.
FILES
.paprc
file read to obtain printer name if not specified on command line
SEE ALSO nbp_name(3), atalk_aton(3), lpd(8), psf(8).
Netatalk 2.2 6 May 2002 PAP(1)
Check Out this Related Man Page
PSF(8) System Manager's Manual PSF(8)NAME
psf - PostScript filter
SYNOPSIS
psf [ -n name ] [ -h host ] [ -w width ] [ -l length ] [ -i indent ] [ -c ]
DESCRIPTION
psf is an lpd filter for PostScript printing. psf interprets the name it was called with to determine what filters to invoke. First, if
the string ``pap'' appears anywhere in the name, psf invokes pap to talk to a printer via AppleTalk. Next, if the string ``rev'' appears,
psf invokes psorder to reverse the pages of the job. Finally, if psf was called with a filter's name as the leading string, it invokes that
filter. If there is no filter to run, psf examines the magic number of the input, and if the input is not PostScript, converts it to Post-
Script.
KLUDGE
In the default configuration, psf supports two kludges. The first causes psf to check its name for the letter `m'. If this letter is
found and accounting is turned on, psf calls pap twice, once to get an initial page count and to print the job, and another time to get a
final page count. This is a work-around for bugs in a variety of PAP implementions that cause printers to never properly close the PAP
output file. A notable example is any printer by Hewlett-Packard.
The second kludge causes psf to examine its name for the letter `w'. If this letter is found and accounting is turned on, psf calls pap
with the -w flag. This flag causes pap to wait until the printer's status contains the string `idle'. Once this string is found, the job
is printed as normal. This kludge is a work-around for printers, notably Hewlett-Packard's LaserJet IV, which will report a page count
while a previous jobs is still printing.
EXAMPLE
The sample printcap entry below invokes psf to print text files, PostScript files, troff's C/A/T output, and TeX's DVI output, to an
AppleTalk connected LaserWriter Plus. Since the LaserWriter Plus stacks pages in descending order, we reverse the pages and print the burst
page last.
laser|lp|LaserWriter Plus on AppleTalk:
:sd=/usr/spool/lpd/laser:
:lp=/usr/spool/lpd/laser/null:
:lf=/var/adm/lpd-errs:pw#80:hl:
:of=/usr/lib/filters/ofpap:
:if=/usr/lib/filters/ifpaprev:
:tf=/usr/lib/filters/tfpaprev:
:df=/usr/lib/filters/dfpaprev:
Note that if the host in question spools to more than one AppleTalk printer, /dev/null should not be used for the lp capability. Instead, a
null device should be created with mknod for each printer, as has been done above.
Finally, there is a file in the spool directory, /var/spool/lpd/laser, called .paprc, which pap reads for the AppleTalk name of the
printer.
SEE ALSO psorder(1), printcap(5), lpd(8), mknod(8), pap(8).
netatalk 1.2 17 Dec 1991 PSF(8)