Creare Pdf

Per creare un pdf con una stampante basta aggiungere questa stampante (il file che vedete scritto di seguito) in /usr/lib/cups/backend/ chiamandolo PDF, e riavviate cups. A questo punto avrete una stampante che crea pdf.

 #!/bin/sh
 #
 # This script is intended to be used as a CUPS backend, to create
 # PDF file on-the-fly. Just create a printer using the device uri
 # pdf:/path/to/dir/. When printing to this printer, a PDF file
 # will be generated in the directory specified. The file name will
 # be either "<jobname>.pdf" or "unknown.pdf", depending wether the
 # jobname is empty or not.
 #
 # To use it, simply copy this script to your backend directory, and
 # create a printer with the correct URI. That's it.
 #
 # Copyright (C) Michael Goffioul (goffioul@imec.be) 2001
 LOGFILE=/tmp/pdf.log
 PDFBIN=`which ps2pdf`
 FILENAME=
 # this is borrowed from printpdf script for the filename
 PRINTTIME=`date +d-M%S`  
 echo "Executable: $PDFBIN" > $LOGFILE
 echo "Arguments: |$1|$2|$3|$4|$5|$6|" >> $LOGFILE
 echo $# $PRINTTIME >> $LOGFILE
 # case of no argument, prints available URIs
 if [ $# -eq 0 ]; then
         if [ ! -x "$PDFBIN" ]; then
                 exit 0
         fi
         echo "direct pdf \"Unknown\" \"PDF Writing\""
         exit 0
 fi 
 # case of wrong number of arguments
 if [ $# -ne 5 -a $# -ne 6 ]; then
         echo "Usage: pdf job-id user title copies options [file]"
         exit 1
 fi 
 # get PDF directory from device URI, and check write status
 PDFDIR=${DEVICE_URI#pdf:}
 if [ ! -d "$PDFDIR" -o ! -w "$PDFDIR" ]; then
         echo "ERROR: directory $PDFDIR not writable"
         exit 1
 fi
 echo "PDF directory: $PDFDIR" >> $LOGFILE 
 # generate output filename
 OUTPUTFILENAME=
 if [ "$3" = "" ]; then
         OUTPUTFILENAME="$PDFDIR/unknown.pdf"
 else
         # OUTPUTFILENAME="$PDFDIR/${3//[^[:alnum:]]/_}.pdf"
         # I changed this to user name, and the printtime to track down who
         # printed the PDF and when, samba printing just uses nobody 
         OUTPUTFILENAME="$PDFDIR/$2-$PRINTTIME.pdf"
         echo "PDF file: $OUTPUTFILENAME placed in: $PDFDIR" >> $LOGFILE
 fi
 echo "Output file name: $OUTPUTFILENAME" >> $LOGFILE 
 # run ghostscript
 if [ $# -eq 6 ]; then
         $PDFBIN $6 "$OUTPUTFILENAME"
 #>& /dev/null
 else
         $PDFBIN - "$OUTPUTFILENAME" >& /dev/null
 fi 
 # modify ownership and permissions on the file
 #  - world readable
 #  - owns to user specified in argument
 chmod a+r "$OUTPUTFILENAME"
 if [ "$2" != "" ]; then
         chown $2 "$OUTPUTFILENAME"
 fi  
 exit 0