PDF mit SAMBA

(Alternativen: FreePDF oder GS4Word)

 

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".

 

 

letzte Änderung: 13.02.2001 0:04