Newsgroup: it.comp.os.linux.iniziare
Titolo: salvare stampa da lpd a pdf

Buongiorno a tutti,
ho un server AIX che stampa su una stampante di rete, e vorrei salvare
l'output delle stampe in formato PDF, per eliminare le fotocopie che
sono costretto a tenere.
Ho pensato di usare linux perché ha un demone lpd e può stampare in
PDF. Provato una knoppix 3.91, ho scoperto che c'è CUPS attivo e non
so far partire il demone lpd. Come si fa ad attivare quel demone? Non
è presente nemmeno negli rc.d/...
Inoltre, è possibile salvare automaticamente in pdf ciò che arriva
come flusso di stampa? Avete qualche suggerimento pure su questo?
Grazie.

Panathos wrote:

Anche Cups puo' stampare in pdf. A quel punto crea un alias del comando lp,
che lo invii sia alla stampante vera che a quella pdf:
alias "lp"="lp ; cd /directory/delle/copie ; lp -d PDF $@ "
Se non hai installato una "stampante per pdf" allora crei il seguente file,
chiamdolo "PDF", in  "/usr/lib/cups/backend/":
#!/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 (
goff...@imec.be
) 2001
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
-- 
Cerchi piu' informazioni su Linux? Linuxpedia: 
http://maxint.dynalias.org
--
Le gelaterie di una volta...  Vi ricordate?  Due gusti: crema e cioccolato.
Ora non sai piu' cosa scegliere.  Passi venti minuti ad andare avanti e
indietro lungo il bancone, dove trovi i gusti piu' assurdi.  Il puffo, ma
chi lo fa?  Saylor Moon?  E tu, avanti e indietro.  Il gusto vongola, mio
dio...  Poi esci, e cosa ti sei preso?  Crema e cioccolato!
  -- (Alessandro Di Carlo?)

 alias "lp"="lp ; cd /directory/delle/copie ; lp -d PDF $@ "
Grazie, non sapevo che anche CUPS potesse stampare in PDF. Però il mio
problema principale è di salvare su file diversi i flussi di stampa
che arrivano alla macchina linux... hai qualche idea su questo?
Grazie.
Panathos

 alias "lp"="lp ; cd /directory/delle/copie ; lp -d PDF $@ "
Grazie, non sapevo che anche CUPS potesse stampare in PDF. Però il mio


Panathos wrote:

Basta che crei uno script che controlli il nome del file, e se gia' c'e',
allora al nome ci aggiunge un numero progressivo.
Oppure uno script che crei una directory per ogni giorno che vai in stampa,
e salvi li' i pdf; tutto al posto del semplice comando "lp".
Dipende dalle tue esigenze, ma se leggi bene la guida di Cups, vedrai che e'
solo un comando con moltissime opzione dal lato del client. Mentre dal lato
server puoi gestire quote, intestazioni, prime pagine su ogni documento
mandato in stampa. Insomma, prima domandati con esattezza cosa ti serve,
poi a quel punto le soluzioni saranno molte e sara' a te scegliere.
Comunque la comunita' linux sara' sempre disponibile a darti una mano se
saprai bene cosa vuoi.
-- 
Cerchi piu' informazioni su Linux? Linuxpedia: 
http://maxint.dynalias.org
--
Il linguaggio di programmazione piu' diffuso sul pianeta e' il Cobol.
Mio Dioooo!!!!!

 saprai bene cosa vuoi.
Questa è sempre una gran bella cosa :-)
Ciao,
Panathos.

 č cosě ogni santo giorno.
E' sempre cosi', soprattutto nei sistemi OpenSource, l'evoluzione procede a
passi da gigante in tempi brevissimi. Quindi per quello che ti inventi
oggi, domani esiste gia' una soluzione migliore e piu' raffinata. Bisogna
solo capire che cio' non vuol dire che la propria sia sbagliata (se non
crea alcun problema) ma che magari qualcuno ha preso spunto dalla tua idea
per fare qualcosa di ancora piu' brillante.
Newton disse: "Se sono arrivato cosi' in alto, l'ho fatto poggiandomi sulle
spalle dei giganti", intendendo che la forza di gravita', o altre sue
scoperte, non avrebbe mai potute farle senza i matematici e fisici che
l'avevano preceduto o aiutato.
Passando ai sistemisti con esperienza ventennale (io ho avuto a che fare un
po' con loro), ci sono due categorie: quelli che si sono fermati, stanchi,
e fanno sempre e solo le solite cose (in un ufficio di 4 persone, tirano su
tre server, uno per internet, uno per la stampa, uno per la memorizzazione
dei file; perche' hanno sempre fatto cosi', usando tre window$ server e non
riuscendo ad installare i driver della scheda grafica) e quelli che non
smettono mai di studiare e provare (nello stesso ufficio usano un solo pc
da meno di 400 euro per fare internet, stampa e gestione dei file, con
Linux/Slackware).
Continua cosi' che vai forte!
-- 
Cerchi piu' informazioni su Linux? Linuxpedia: 
http://maxint.dynalias.org
--
      Quando la fame e' fame,
   anche la merda diventa salame.

 č cosě ogni santo giorno.
Non ho esperienza ventennale, infatti la mia e' trentennale, ma ti posso
confermare che e' cosi'. :-)
E' cosi' in tutti due i mondi:
Nell'open source hai valanghe di informazioni e di novita' da provare a
capire, e se hai tempo e voglia, provare a modificare o ricostruire.[*]
Nel mondo closed source, invece hai valanghe di work-around da scoprire
e applicare.
[*] Zitto, prospero, non dicevo a te. (rif. per pochi vecchi user)
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net

 [*] Zitto, prospero, non dicevo a te. (rif. per pochi vecchi user)
Mica ti riferisci al Pirotti?
ciao,
Panathos

 Mica ti riferisci al Pirotti?
Conosci altri che in usenet postano link a "ricostruire" ?


 gestire il database, qualunque database.
Il bello è che non lo devo nemmeno gestire, ma solo puppare dati
possibilmente in modo più efficiente di quanto si faccia adesso. Cmq
non mi lamento, anzi... se andiamo a contare, sono uno dei pochi che si
sveglia al mattino contento di fare il lavoro che sta facendo!
Ciao,
Panathos