Also zum einen braucht es für PDF-Erzeugung über Samba folgenden Eintrag in der smb.conf:
[PDF]
path = /tmp
read only = No
create mask = 0700
printable = Yes
printer name = PDF
comment = Treiber ist Apple Color LaserWriter 12/600
share modes = No
print command = genpdf %s %H
|
Das benötigte script /usr/bin/genpdf hat folgenden Inhalt:
#!/bin/sh
#
#
# Allgemeine Übergabe ...
#
TEMPFILE=$1
HOMEDIR=$2
#
# Zielverzeichnis checken/anlegen
#
if [ ! -z "$HOMEDIR" ]
then
if [ ! -d "$HOMEDIR/PDF" ]
then
mkdir "$HOMEDIR/PDF"
fi
fi
#
# Dateinamen generieren ...
#
PDFNAME=$(egrep "^%%Title:" "$TEMPFILE" | head -n 1 | sed -e 's/^%%Title: //g' | sed -e 's/^(//g' | sed -e 's/\(.*\)\..*$/\1/g' | tr -d "\r\n")
PDFNAME=`echo -n -e $PDFNAME`
if [ -z "$PDFNAME" ]
then
PDFNAME="unknown`date +%Y-%m-%d--%H.%M.%S`"
fi
if [ -f "${HOMEDIR}/PDF/${PDFNAME}.pdf" ]
then
PDFTEMP="$PDFNAME"
ZAEHLER=1
PDFTEMP="${PDFNAME}_${ZAEHLER}"
while [ -f "${HOMEDIR}/PDF/${PDFTEMP}.pdf" ]
do
PDFTEMP="${PDFNAME}_${ZAEHLER}"
ZAEHLER=`expr ${ZAEHLER} + 1`
done
PDFNAME="$PDFTEMP"
fi
#
# Müll an Anfang und Ende enfernen ...
#
POS_S=`egrep -n "^%\!PS-Adobe" "$TEMPFILE" | cut -d : -f 1 `
POS_E=`egrep -n "^%%EOF" "$TEMPFILE" | cut -d : -f 1`
sed 1,$[$POS_S - 1]d "$TEMPFILE" | head -n $[$POS_E - $POS_S + 1] > "${PDFNAME}.ps"
#
# Samba-Temporär-Datei löschen
#
rm -f "$TEMPFILE"
#
# PDF generieren
#
gs -dCompatibilityLevel=1.3 -dNOPAUSE -sDEVICE=pdfwrite -q -dBATCH -sOutputFile="${HOMEDIR}/PDF/${PDFNAME}.pdf" "${PDFNAME}.ps"
#
# PostScript-Datei löschen
#
rm -f "${PDFNAME}.ps"
|
Nach dem Druck auf den Drucker PDF steht dann Im Homeverzeichnis des Users im PDF-Verzeichnis
das PDF zur Verfügung und kann über SAMBA geöffnet und weiterbenutzt werden.
Der Dateiname wird hierbei aus dem Übergebenen Titel generiert. Sollte eine Datein schon vorhanden sein,
so wird an den Dateinamen automatisch ein Zähler angehängt damit diese nicht überschrieben wird.
Als Druckertreiber unter MS-WindowsXP/2000/98SE empfiehlt sich der Treiber "Apple Color LaserWriter 12/600".