Provided by: netatalk_2.0.3-3ubuntu1_i386 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).