PDF Virtual Printer 

http://wiki.archlinux.org/index.php/CUPS_Setup#PDF_Virtual_Printer

The CUPS-PDF package allows one to setup a virtual printer that will generate a PDF from anything sent to it. For example, I wrote this document in AbiWord and then printed it to the Virtual Printer which generated a pdf in my /var/spool/cups-pdf/neocephas folder.

After downloading the package from the ftp server and installing it, you can set it up as you would for any other printer in the web interface. Select Virtual PDF Printer as the device and choose Postscript -> Postscript Color Printer for the drivers.

setting up CUPS-PDF 

Setup 

Go to http://localhost:631

"Manage Printers" => "Add Printer"

You are prompted to enter the following three things:

Only the Name field is required. The other fields are not actually used by CUPS and may be left blank; you can change them later if you'd like.

Name:          cups_pdf
Description:   CUPS-PDF Virtual Printer
Device:        Virtual Printer (PDF Printer)

and choose "Postscript" as Make/Manufacturer, then "Generic postscript Color Printer" for the Model/Driver.

Click on the "Continue" in necessary.

Test print 

Click on "Print Test Page".

Check result in /root/PDF.

xpdf /root/PDF/Test_Page.pdf &

Actual printing 

Remember to click the cups-pdf printer property and choose color printing. Printed PDF files are in $HOME/PDF directory (documented in /usr/share/doc/cups-pdf/README.Debian)

documented on: 2006.11.21

CUPS-PDF Virtual Printer in Sarge 

Test print 

Click on "Print Test Page".

Check result in /root/cups-pdf.

Actual printing 

Remember to click the cups-pdf printer property and choose color printing. Printed PDF files are in $HOME/cups-pdf directory.

documented on: 2006.05.23

setting up the PDF queue with CUPS 

/usr/share/doc/cups-pdf/README

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.h (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 subdirectory for anonymous operation (if not disabled in cups-pdf.h - defaults to ANONYMOUS/). Furthermore if logging is enabled the logfile will be placed by default in /var/log/cups.

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.