Provided by: netatalk_2.0.3-9_i386 bug

NAME

       papd.conf  -  Configuration  file  used  by  papd(8)  to  determine the
       configuration of printers used by the Netatalk printing daemon

DESCRIPTION

       /etc/netatalk/papd.conf is the  configuration  file  used  by  papd  to
       configure  the  printing services offered by netatalk. Please note that
       papd must be enabled in /etc/netatalk/netatalk.conf for  this  to  take
       any  effect.  papd shares the same defaults as lpd on many systems, but
       not Solaris.

       Any line not prefixed with # is interpreted.  The  configuration  lines
       are composed like:

       printername:[options]

       On  systems  running a System V printing system the simplest case is to
       have either no papd.conf, or to have one that has no active  lines.  In
       this  case,  atalkd  should  auto-discover  the  local  printers on the
       machine.  Please note that you can split lines by using \\fR.

       printername may be just a name (Printer 1), or it may be a full name in
       nbp_name format (Printer 1:LaserWriter@My Zone).

       Systems  using  a  BSD printing system should make use of a pipe to the
       printing command in question within the pr option (eg. pr=|/usr/bin/lpr
       -J%J  -u%U).  Note: When printing using a pipe, papd recognizes several
       wildcards: %F will be replaced by the  name  present  in  the  "%%For:"
       comment  in  the  PostScript  stream,  same  with %J for the "%%Title:"
       comment. %U will be substituted with the login name (the latter applies
       only when authenticated printing is in effect).

       When  CUPS  support is compiled in, then cupsautoadd as the first entry
       in papd.conf  will  automagically  share  all  CUPS  printers  by  papd
       utilizing  the  PPDs assigned in CUPS (customizable -- see below). This
       can be  overwritten  for  individal  printers  by  subsequently  adding
       individual  entries  using  the CUPS queue name as pr entry. Note: CUPS
       support is mutually exclusive with System V support described above.

       The possible options  are  colon  delimited  (:),  and  lines  must  be
       terminated with colons. The possible options and flags are:

       am=(uams list)
              The  am  option  allows  specific  UAMs  to  be  specified for a
              particular printer. It has no effect  if  the  au  flag  is  not
              present  or  if papd authentication was not built into netatalk.
              Note: possible values are uams_guest.so and uams_clrtxt.so only.
              The first method requires a valid username, but no password. The
              second requires both a valid username and the correct  password.

       au     If  present,  this  flag enables authentication for the printer.
              Please note that papd authentication must be built into netatalk
              for this to take effect.

       co=(CUPS options)
              The  co  option allows options to be passed through to CUPS (eg.
              co="protocol=TBCP" or co="raw").

       cupsautoadd[:type][@zone]
              If used as the first entry in papd.conf this will share all CUPS
              printers   via   papd.  type/zone  settings  as  well  as  other
              parameters assigned to this special printer share will apply  to
              all  CUPS  printers.  Unless the pd option is set, the CUPS PPDs
              will be used. To overwrite these global settings for  individual
              printers  simply  add  them subsequently to papd.conf and assign
              different settings.

       fo     If present, this flag enables a hack to translate  line  endings
              originating  from  pre  Mac  OS  X  LaserWriter  drivers  to let
              foomatic-rip recognize foomatic PPD options set in  the  printer
              dialog.  Attention:  Use  with  caution since this might corrupt
              binary print jobs!

       op=(operator)
              This specifies the operator name, for lpd spooling.

       pa=(appletalk address)
              Allows specification of Appletalk addresses. Usually not needed.

       pd=(path to ppd file)
              Specifies   a  particular  PPD  (printer  description  file)  to
              associate with the selected printer.

       pr=(lpd/CUPS printer name or pipe command)
              Sets the lpd or CUPS printer that this is spooled to.

EXAMPLES

       Unless CUPS support  has  been  compiled  in  (which  is  default  from
       Netatalk  2.0  on)  one  simply  defines  the  lpd queue in question by
       setting the pr parameter to the queue name, in  the  following  example
       "ps". If no pr parameter is set, the default printer will be used.

       papd.conf System V printing system examples

       The  first  spooler is known by the AppleTalk name Mac Printer Spooler,
       and uses a PPD file located in  /usr/share/lib/ppd.  In  addition,  the
       user  mcs  will  be  the owner of all jobs that are spooled. The second
       spooler is known as HP Printer and all options are the default.

       Mac Printer Spooler:\
          :pr=ps:\
          :pd=/usr/share/lib/ppd/HPLJ_4M.PPD:\
          :op=mcs:

       HP Printer:\
          :

       An alternative to the technique outlined  above  is  to  direct  papd’s
       output via a pipe into another program. Using this mechanism almost all
       printing systems can be driven.  Netatalk  supplies  three  "wildcards"
       that get substituted with values of the already printed job: %F, %U and
       %J. Using these wildcards, one can pass those  parameters  directly  to
       programs or implement small wrapper scripts to call the printing system
       in question.

       papd.conf examples using pipes

       The first spooler is known as HP  8100.  It  pipes  the  print  job  to
       /usr/bin/lpr  for  printing  using the value of the %%Title: comment as
       job name. PSSP authenticated  printing  is  enabled,  as  is  CAP-style
       authenticated  printing.  Both  methods  support  guest  and  cleartext
       authentication as specified  by  the  ’am’  option.  The  PPD  used  is
       /etc/atalk/ppds/hp8100.ppd.   The   second   spooler  is  called  "Dump
       PostScript" and uses a pipe to cat to send the raw PostScript code into
       the user’s home directory into a file called like the printjob.

       HP 8100:\
          :pr=|/usr/bin/lpr -Plp -J"%J":\
          :sp:\
          :ca=/tmp/print:\
          :am=uams_guest.so,uams_pam.so:\
          :pd=/etc/atalk/ppds/hp8100.ppd:

       Dump PostScript:LaserWriter@Server:\
          :pr=|cat >/home/%U/%J-prn.out:\
          :pd=/usr/share/lib/ppd/mooralana.ppd:\
          :sp:au:op=lp:\
          :am=uams_clrtxt.so:

       Starting  with  Netatalk  2.0  direct CUPS integration is available. In
       this case, defining only a queue name as pr parameter won’t invoke  the
       SysV  lpd  daemon but uses CUPS instead. Unless a specific PPD has been
       assigned using the pd switch, the PPD configured in CUPS will  be  used
       by papd, too.

       There  exists one special share named "cupsautoadd". If this is present
       as the first entry then  all  available  CUPS  queues  will  be  served
       automagically  using  the parameters assigned to this global share. But
       subsequent printer definitions can be used  to  override  these  global
       settings for individual spoolers.

       papd.conf CUPS examples

       The  first  entry  sets up automatic sharing of all CUPS printers.  All
       those shares appear in the zone "1st floor"  and  since  no  additional
       settings have been made, they use the CUPS printer name as NBP name and
       use the PPD configured in CUPS.  The  second  entry  defines  different
       settings  for  one single CUPS printer. It’s NBP name is differing from
       the printer’s name and the registration happens in another zone.

       cupsautoadd@1st floor:op=root:

       Boss’ LaserWriter@2nd floor:\
          :pr=laserwriter-chief:

SEE ALSO

       papd(8), atalkd.conf(5), lpd(8), lpoptions(8)