Full commit
Welcome to CUPS-PDF v2


  1. building CUPS-PDF
  2. setting up the PDF queue with CUPS
  3. note for MacOSX
  4. contact

1. building CUPS-PDF

   Edit src/cups-pdf.h if you do not like /etc/cups/cups-pdf.conf as name 
   for the configuration file.
   To compile CUPS-PDF, invoke gcc in the src/ directory:

   gcc -O9 -s -o cups-pdf cups-pdf.c

   To install the binary, simply copy cups-pdf to the backend directory
   of CUPS (usually /usr/lib/cups/backend).

   Now copy extra/cups-pdf.conf to /etc/cups (or whatever location you
   selected in cups-pdf.h above). Here you can set all properties of 
   CUPS-PDF at runtime without the need for restarting any services.
   (The defaults should work fine on most systems.)

   In case you want to use the color PostScript driver that comes with
   CUPS-PDF go to the extra/ subdirectory and copy 
   PostscriptColor.ppd.gz to your cups model directory (usually 

2. setting up the PDF queue with CUPS

   Important notes:
   *CUPS-PDF requires root privileges since it has to modify file ownerships. 
    In recent distributions the "RunAsUser" option in cupsd.conf is set to 
    "Yes" which removes these privileges. Please make sure to set 
    "RunAsUser No" if you want to use CUPS-PDF.
   *make sure if any of CUPS-PDF's working directories (e.g. output) is a 
    NFS mounted volume it is mounted without root_squash!
   *CUPS-PDF is known to fail if the gs (GhostScript) binary on a system is 
    compressed by upx (Ultimate Packer for eXecutables).

   Now after restarting CUPS you will be able to choose "Virtual Printer (PDF
   Printer)" when setting up a new printer in CUPS.
   To set up a queue for other UNIX clients you should select Postscript as
   vendor and the Color Printer as model for your new printer; queues that get
   their input from samba or netatalk (i.e. Windows, OS/2 or MacOS) can be set
   up as raw queues. On the Windows, OS/2 or MacOS system choose a color
   postscript driver for that network printer (the drivers for Minolta Page
   Works or HP DesignJet printers do a good job).
   Hint: If you want to create grayscale PDFs you just have to choose a
   grayscale printer driver, i.e. the postscript.ppd that comes with CUPS on
   the Linux side or a b/w laser printer (e.g. a HP LaserJet) on the Windows
   side. On the Linux side be aware that the postscript.ppd will not
   re-process data that is already supplied in Postscript format, i.e. a color
   Postscript will keep it's colors.

   Once you print to the new device the output directory selected in
   cups-pdf.conf (defaults to /var/spool/cups-pdf) will be created and all
   converted PDF files will be placed in subdirectories named after the owner
   of the print job. In case the owner cannot be identified (i.e. does not
   exist on the server) the output is placed in the directory for anonymous
   operation (if not disabled in cups-pdf.conf - defaults to 
   Furthermore if logging is enabled the logfile will be placed by default in

   The file "PostscriptColor.ppd.gz" is a modified version of the
   "Postscript.ppd.gz" that comes with CUPS 1.1.15 that is able to handle
   color output.

3. note for MacOSX

   Since MacOSX' AFPL GhostScript does not support the way of PDF generation 
   used by CUPS-PDF you will have to use pstopdf instead. For this the
   settings of GhostScript, GSCall and PDFVer in cups-pdf.conf have to be
   changed accordingly. The values are documented in cups-pdf.conf .

4. contact
   Volker Christian Behr