[Samba] PDF printer using ps2pdf ?
Thomas Bork
tombork at web.de
Wed Oct 30 20:19:01 GMT 2002
Hallo Tim Allen,
you wrote:
>> Is it possible to set up a printer in samba
>> that will use ps2pdf converter to create pdf documents when printing
>> on it ? Best Regards
>> Steph
>
> Yes. Take a look at Sambafax:
>
> http://wwwhomes.uni-bielefeld.de/ingalo/software/sambafax.html
>
> for the general idea. Obviously it's for a slightly different purpose
> but could easily be adapted.
>
> A slight problem with such schemes is deciding what to call the PDF
> file and where to put it. A dedicated directory off of your home is
> one possibility. Or you could email the PDF back to yourself.
>
> But what you might really want is Redmon:
>
> http://www.cs.wisc.edu/~ghost/redmon/
>
> which allows you to set up Ghostscript on your local machine as a PS
> or PDF writer. Last time I tried it, it had a minor bug in that it
> would only write the PDF file to a local drive, not a network drive.
and another one:
#!/bin/bash
#----------------------------------------------------------------------
------
# /usr/local/bin/samba-print-pdf - print to a pdf-file
#
# Creation: 23.07.2002 Buchan Milne
# Last Update: 21.10.2002 tb
#
# Arguments:
# $1 = file (usually passed with %s from samba)
# $2 = unix prefix to where to place the file (~%u should work)
# $3 = windows prefix to the same location (\\%L\%u should work)
# $4 = user/computer to send a notification to (%u or %m)
# $5 = IP address of client (%I)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#----------------------------------------------------------------------
------
PS2PDF=ps2pdf13
OPTIONS=""
INPUT=$1
KEEP_PS=0
PERMS=640
INFILE=$(basename $INPUT)
BASEFILE=pdf-service
#make a temp file to use for the output of the PDF
OUTPUT="$2/$BASEFILE-$4-$$"
> $2/$BASEFILE-$4-$$
if [ $? -ne 0 ]
then
# Generate a failure message to send to the user:
MESSAGE=$(echo "Can't create temp file $2/$BASEFILE-$4-$$,
exiting...")
else
WIN_OUTPUT="$3\\`basename $OUTPUT`"
# create the PDF:
$PS2PDF $OPTIONS $INPUT $OUTPUT.pdf >/dev/null 2>&1
# Generate a message to send to the user, and deal with the
original file:
MESSAGE=$(echo "Your pdf-file has been created as $WIN_OUTPUT.pdf")
if [ "$KEEP_PS" = "1" ]
then
mv $INPUT $OUTPUT.ps
MESSAGE=$(echo "$MESSAGE and your postscript file as
$WIN_OUTPUT.ps")
else
rm -f $INPUT
fi
chmod $PERMS $OUTPUT.ps $OUTPUT.pdf
#Remove empty file from mktemp:
rm -f $OUTPUT
fi
# Send notification to user
echo $MESSAGE|smbclient -U "eisfair pdf-service" -M "$4" -I "$5" 1>
/dev/null
In smb.conf:
[pdf-service]
comment = pdf-service on %h
browseable = yes
printable = yes
path = /tmp
print command = ( /usr/local/bin/samba-print-pdf %s ~%u \\\\%L\\%u
%m %I ) &
public = yes
create mode = 0700
tom
More information about the samba
mailing list