OK, just initial notes. These will be RedHat specific (as that's what we use - sorry guys!), and use LPRng, though it should be trivial for a clever CUPS user to convert (and wiki!) to this system.
First, I defined a queue in printcap like so:
pdfwriter:\
:ml#0:\ :mx#0:\ :sd=/var/spool/lpd/pdfwriter:\ :af=/var/spool/lpd/pdfwriter/pdfwriter.acct:\ :sh:\ :lp=/dev/null:\ :lpd_bounce=true:\ :if=/usr/share/printconf/pdffilter:
Next, I created the pdffilter script as follows:
\#!/bin/bash
DOMAIN="yourdomain.co.nz"
PDF=`which ps2pdf`
MUA=`which mutt`
BODY="/usr/share/printconf/body"
TEMPFILE1="/tmp/output.ps-$RANDOM"
TEMPFILE2="/tmp/output$RANDOM.pdf"
TEMPFILE3="/tmp/cmd$RANDOM.txt"
SUBJECT="PDF Output."
ADDRESS="`echo $1 | sed -e 's/-A//' | awk -F@ '{ print $1 }'`@$DOMAIN"
CMDLINE="`echo $*`"
echo $CMDLINE > $TEMPFILE3
cat > $TEMPFILE1
$PDF -dPDFSETTINGS=/prepress -sPAPERSIZE=a4 $TEMPFILE1 $TEMPFILE2
$MUA -a $TEMPFILE2 -s "$SUBJECT" $ADDRESS < $BODY
rm -f $TEMPFILE1
rm -f $TEMPFILE2
rm -f $TEMPFILE3
/usr/share/printconf/body is just the message you want to email your users. Feel free to experiment with PDFSETTINGS, I have found the /prepress one seems to give the best quality output.
For your windows clients, just add a postscript printer (any will do - I use Kodak !ColorEase? PS - no reason, just out of habit), and point it at \\servername\pdfwriter.
The job will be emailed to the same name the print job was submitted under, so ensure there are aliases for these if they differ from your email address namespace. This also assumes you have mutt, an mta, and ps2pdf installed.
Hope this is useful.
4 pages link to SambaPDFPrinter:
lib/main.php:944: Notice: PageInfo: Cannot find action page
lib/main.php:839: Notice: PageInfo: Unknown action
lib/plugin/WlugLicense.php:99: Warning: Invalid argument supplied for foreach()