Provided by: netatalk_2.2.6-1ubuntu0.18.04.2_amd64 bug

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 PostScript.

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=/var/spool/lpd/laser:\
               :lp=/var/spool/lpd/laser/null:\
               :lf=/var/log/lpd-errs:pw#80:hl:\
               :of=/usr/lib/netatalk/ofpap:\
               :if=/usr/lib/netatalk/ifpaprev:\
               :tf=/usr/lib/netatalk/tfpaprev:\
               :df=/usr/lib/netatalk/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(1), mknod(1), pap(1).