[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: print to pdf?
- From: Dave Ihnat <ignatz dminet com>
- To: redhat-list redhat com
- Subject: Re: print to pdf?
- Date: Thu Aug 29 16:07:08 2002
On Thu, Aug 29, 2002 at 03:04:18PM -0400, Chris Mason wrote:
> I'd like to have a windows computer print postscript to a Redhat server,
> and have the server turn the postscript into a pdf and save it in a
> samba share. Can that be done?
Yep. The attached script will do this.
--
Dave Ihnat
ignatz dminet com
#!/bin/sh
# Simple script to convert a specified postscript file into a PDF document
# and place it in a location that is shared by the Samba server.
#
# Usage:
# printpdf [-k][-n] Input_Filename
#
# Where Input_Filename is the spool file for spooler use
#
# -k Keep the input file. Default is to delete it when done.
#
# -n Name the output file the same name as the input file sans any
# suffixes.
#
# -v Verbose.
#
# -d Debug. Won't take effect until after command parse, of course.
#
# (Original version) John Bright, 2001, jbright winfordeng com
#
# Modified 01/20/2002, dihnat dminet com
# Added command-line options to preserve input file, name output file to
# input filename for interactive use.
#
##########################################################################
# Data
##########################################################################
# We will create the pdf into a temporary file based upon the current
# date and time. After we are finished, we'll rename it to a file with
# the same date, but ending in .pdf. We do this because if a user tries
# to open a PDF that is still being written, they will get a message
# that it is corrupt, when it is actually just not done yet.
DATE=`date +%b%d-%H%M%S`
# Directory in which to place the output
# Be sure this directory exists and is writable by the user that Samba
# is running as (for example, the nobody user)
OUTDIR=/usr/tmp/pdfdropbox
# Option control flags
KEEP_FLAG="";
NAME_FLAG="";
VERBOSE_FLAG="";
DEBUG_FLAG="";
##########################################################################
# FUNCTIONS
##########################################################################
usage() {
if [ "$DEBUG_FLAG" ]
then
set -x;
fi;
cat <<!
Usage:
printpdf [-k][-n] Input_Filename
Where Input_Filename is the spool file for spooler use
-k Keep the input file. Default is to delete it when done.
-n Name the output file the same name as the input file sans any
suffixes.
-v Verbose mode.
!
exit 1;
};
verb_print()
{
if [ "$VERBOSE_FLAG" ]
then
echo "$*" >&2;
fi;
};
##########################################################################
# MAIN
##########################################################################
# Get options
TMPSTR=`getopt -o dvhkn -- "$@"`;
if [ $? -ne 0 ]
then
exit $?;
fi;
eval set -- "$TMPSTR";
while true
do
case "$1" in
-k)
KEEP_FLAG="Y";
shift;
;;
-n)
NAME_FLAG="Y";
shift;
;;
-v)
VERBOSE_FLAG="Y";
shift;
;;
-d)
DEBUG_FLAG="Y";
shift;
;;
-h)
usage;
shift;
;;
--)
shift;
break;
;;
esac;
done;
if [ "$DEBUG_FLAG" ]
then
set -x;
fi;
if [ ! -d $OUTDIR ]
then
mkdir $OUTDIR;
if [ $? -ne 0 ]
then
/usr/bin/logger -i -s -p lpr.err -t "printpdf" "Faile to create PDF output directory $OUTDIR";
verb_print "Failed to create PDF output directory $OUTDIR";
exit 1;
fi;
chmod 777 $OUTDIR
if [ $? -ne 0 ]
then
/usr/bin/logger -i -s -p lpr.err -t "printpdf" "Faile to set permissions on PDF output directory $OUTDIR";
verb_print "Faile to set permissions on PDF output directory $OUTDIR";
exit 1;
fi;
fi;
while [ $# -ne 0 ]
do
if [ "$NAME_FLAG" ]
then
OUTFNAME="$OUTDIR/`basename $1 .ps`.pdf"
else
OUTFNAME="$OUTDIR/$DATE.pdf";
fi;
verb_print "Output filename: $OUTFNAME";
ps2pdf "$1" $OUTDIR/$DATE.temp
mv $OUTDIR/$DATE.temp "$OUTFNAME";
if [ ! "$KEEP_FLAG" ]
then
verb_print "Deleting spooled file $1";
rm -f "$1"
fi;
shift;
done;
exit 0;
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]