Stampare su PDF e aggiungere uno sfondo con Samba e Pdftk
martedì, gennaio 13 2009 - 174 VisualizzazioniDa anni esistono molti programmi per creare PDF da qualunque applicazione: si comportano come normali stampanti che, anzichè produrre un documento cartaceo, salvano le stampe su file PDF. Alcuni di essi sono gratuiti (come l’ottimo CutePDF Writer, per Windows, o il pacchetto Cups-PDF, disponibile praticamente su ogni distribuzione Linux), ma le funzionalità più avanzate sono solo a pagamento.
Il problema del giorno è avere a disposizione una stampante PDF che aggiunga uno sfondo predefinito a tutte le pagine: lo sfondo sarà un file PDF di una sola pagina. La stampante dovrà essere utilizzabile, anche in rete, sia da Windows che da Linux.
Uno strumento di questo tipo può tornare utile in diverse situazioni:
SoftwarePer realizzare la nostra stampante PDF, c’è bisogno di un PC (o una macchina virtuale) e di una distribuzione Linux. Questo post di basa su Debian/Ubuntu, ma qualunque distribuzione moderna andrà bene. Non è necessario l’ambiente grafico, ma la sua presenza non darà particolare fastidio.
I pacchetti di cui avremo bisogno saranno Samba (per creare e condividere in rete la stampante virtuale), Pdftk (un comodo insieme di strumenti per manipolare file PDF) e Ghostscript (insieme di programmi per manipolare dati Postscript, come quelli che arriveranno alla nostra stampante).
Sarà inoltre necessario lo sfondo da inserire nelle stampe. Per fare delle prove, puoi scaricare un semplice esempio, poi basterà sostituirlo con quello che preferisci.
Configurazione della stampante PDFPer prima cosa, installiamo i pacchetti necessari e facciamo una copia del file di configurazione di Samba, giusto perchè non si sa mai. Avremo anche bisogno di una directory in cui salvare i file PDF creati dalla nostra stampante e gli sfondi da aggiungere alle stampe.
sudo apt-get install samba pdftk ghostscript sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup sudo mkdir /var/spool/pdf/sfondi sudo mkdir /var/spool/pdf/stampe sudo chmod -R 777 /var/spool/pdf
A questo punto, dovremo copiare nella directory /backgrounds lo sfondo desiderato (chiamandolo background.pdf) e poi si può partire con la configurazione. Andremo ad aggiungere, con il nostro editor di testo preferito, due sezioni nel file di configurazione di Samba (/etc/samba/smb.conf)
[stampante] comment = Stampante PDF printing = BSD path = /var/spool/pdf printable = yes guest ok = yes create mask = 0666 directory mask = 0777 use client driver = yes print command = gs -dNOPAUSE -dBATCH -q -sDEVICE=pdfwrite -sOutputFile=”%s.tmp.pdf” “%s”; \ pdftk “%s.tmp.pdf” background sfondi/background.pdf output “stampe/%s.pdf”; \ rm “%s”; rm “%s.tmp.pdf”; lpq command =
[pdf] comment = Stampe PDF path = /var/spool/pdf/stampe guest ok = yes browseable = yes writable = yes create mask = 0666 directory mask = 0777
La prima sezione crea e condivide la stampante vera e propria. Il parametro “print command” dice a Samba cosa fare dei dati in arrivo: come prima cosa Ghostscript si occuperà di convertire in PDF la stampa, per poi darla in pasto a Pdftk che applicherà lo sfondo a tutte le pagine e salverà il file risultante nella directory desiderata.
La seconda sezione condivide la directory in cui verranno salvate le stampe, in modo da potervi accedere dalla rete come una qualunque condivisione Windows.
Dopo aver aggiunto le due sezioni, è necessario riavviare Samba (sudo /etc/init.d/samba restart). Vi lascio come (semplice) compito per casa la creazione di un utente che possa accedere alla stampante e alla condivisione.
Installazione della stampante sotto WindowsUna volta configurata la stampante, bisogna installarla sotto Windows. Collegarsi alla Linux box da una qualunque finestra di Windows (\\indirizzo-ip), inserire le credenziali dell’utente (creato come compito per casa) e collegare la stampante condivisa.

Come driver, andrà bene un qualunque postscript: consiglio una HP Color Laserjet, facendo attenzione che il driver sia “PS”. Io ho usato “HP Color Laserjet 8550-PS“.

E’ buona cosa creare un collegamento alla cartella (perchè siamo nel mondo Windows, in cui le directory si chiamano “cartelle”…) “\\indirizzp-ip\cartella”, definita nella seconda sezione e in cui troveremo i file PDF creati dalla nostra nuova stampante.
Per fare una verifica del funzionamento, si potrà stampare la pagina di prova di Windows e controllare che nel PDF creato compaia lo sfondo corretto.
Altre applicazioni possibiliConsiderato il fatto che il parametro “print command” permette di utilizzare tutta la potenza della shell, si può pensare ad applicazioni più complesse di questo tipo di configurazione. Ecco alcuni esempi che mi vengono in mente al volo, ma nei commenti ogni idea è benvenuta:
Differenziare le cartelle di destinazione a seconda dell’utente connesso alla stampante Inviare il PDF via e-mail anzichè salvarlo Inviare un fax con il risultato della stampa Fare un bel redirect a /dev/null e vaffanculo…Impostare i permessi come ho indicato non è una buona idea, serve solo a far funzionare rapidamente le cose. Se volete mettere in produzione una cosa del genere, fate attenzione alle questioni riguardanti la sicurezza, sottovalutarle nell’illusione di risparmiare tempo vi procurerà solo problemi. Augh!
Altre risorse utili PDF-Watermark Samba Howto The Official Samba 3.2.x HOWTO and Reference Guide Pdftk - The PDF Toolkit Ghostscript documentation Condividi :
Guadagnare con il tuo blog? Prova Linklift, Teliad e Heyos. Poi fammi sapere!Scritto da mBG
Altri Articoli Interessanti
Gli ultimi dal Social
gabrielbutoeru
Gabriel recupera la password e capisce qualche cosa in più su Chrome OS
@Replica
mcastel
qualche riflessione sul sistema operativo di #Google http://tinyurl.com/laquuc (Qaiku)
@Replica
andreaolivato
Gnome-do 0.8.2 con le Docklets su Gentoo : VIDEO http://bit.ly/UcC8g
@Replica
andreaolivato
Stallman: il software libero non deve dipendere da #Mono http://punto-informatico.it/2657922/PI/News/stallman-liberatevi-mono.aspx
@Replica
trampfox
ha appena finito il post su Linux Feed :) http://trampfox.wordpress.com/2009/06/22/linux-feed/
@Replica
Sito webCompletamente Funzionante
GalleryCompletamente Funzionante
Social NetworkCompletamente Funzionante
Server JabberProblemi liste contatti
Servizio MailCompletamente Funzionante
Servizio di RicercaCompletamente Funzionante















