Sophie

Sophie

distrib > Mandriva > current > x86_64 > by-pkgid > 4fb97ecb4b9d69b28f66a6720b6fdadc > files > 34

cups-1.4.5-1mdv2010.1.src.rpm

#!/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=/dev/null
PDFBIN=`which ps2pdf`
FILENAME= 
# this is borrowed from printpdf script for the filename
PRINTTIME=`date +%b%d-%H%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