[Samba] PDF Samba Printer - ps2pdf Only Letter Size?

mwestern at sola.com.au mwestern at sola.com.au
Thu May 15 06:37:54 GMT 2003


I've got a nice working pdf samba printer emailing the right person thanks
to PeteFwee and David F and am doing a little testing.  I've just realized
that it's set to Letter when it creates the .pdf file.  and i've googled
till i'm blue in the face and can't see any options that says page size or
something similar.  i'm running ghostscript 7.04.  

does anybody know how to make ps2pdf do A4 size paper?

Here's my slightly modified script so it mails the user back...

Regards
Matthew

_________________________________

#!/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 at imec.be) 2001
LOGFILE=/var/log/cups/pdf.log
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  -dPpdfSettings=/default $6 "$OUTPUTFILENAME"
	$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 


#Sendmail to the owner.
DATE=`date +%d%b%Y-%H:%M:%S`

MAILFILE=/tmp/mailtemp
HEADER=/tmp/header

TO=$2'@sola.com.au'
SUBJECT='PDF Printer Job'
BODY='PDF Created: '$DATE

echo From: PDFPrinter at sola.com.au >> $HEADER
echo To: $TO >> $HEADER
#echo Cc: $CC >> $HEADER
#echo Bcc: $BCC >> $HEADER
echo Subject: $SUBJECT >> $HEADER
echo "" >> $HEADER
echo "" >> $HEADER
echo $BODY >> $HEADER
echo "" >> $HEADER

cat $HEADER > $MAILFILE
uuencode $OUTPUTFILENAME $2-$PRINTTIME.pdf >> $MAILFILE
cat $MAILFILE | /usr/lib/sendmail -t

rm $MAILFILE
rm $HEADER


exit 0



More information about the samba mailing list