Dr. Thorsten Brandau, Freitag, 1. Oktober 2004 09:51:
Ich weiss, das kam vor kurzem, aber ich glaube da ist keine anbliessende Lösung aufgetaucht.
Doch, läuft hier. In die /etc/cups/printers.conf muß ein Abschnitt rein wie <Printer PDF-Printer> DeviceURI pdf://verzeichnis/der/pdfs State Idle Accepting Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 </Printer> In /usr/lib/cups/backend legst Du eine Datei namens pdf an. Die Rechte guckst Du Dir von den anderen Backends ab, die da drin liegen. Die Datei enthält [1]. Dann mußt Du nur noch die smb.conf anpassen, und folgende Sektion hinzufügen: [printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = No Danach die ganzen Daemonen restarten, und dann sollte es tun. Ich hab selbst lange nach diesem Weg gesucht, daher etwas ausführlicher, in der Hoffnung, daß das ein paar anderen hier auch hilft. Andy [1] #!/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 (kdeprint <at> swing <dot> be) 2001 # # 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. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA LOGFILE=/tmp/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 $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 exit 0 -- Antworten an lists@feile.net werden in /dev/null archiviert! Bitte ggf. lists... durch mail... ersetzen. Andreas Feile www.feile.net