Stampante PDF senza CUPS

Tags:
apt-get install gs-gpl

creare pdflp.sh in /usr/local/bin
#!/bin/bash
ps2pdf - $1/$(date +%Y%m%d-%H%M%S)-$$.pdf

sudo chmod +x /usr/local/bin/pdflp.sh
sudo mkdir -p /var/spool/pdf
sudo chown lp:lp /usr/local/bin/pdflp.sh /var/spool/pdf

modifichiamo la configurazione di inetd (/etc/inetd.conf) aggiungendo la riga:
9100 stream tcp nowait lp /usr/sbin/tcpd /usr/local/bin/pdflp.sh /var/spool/pdf

riavviamo inetd con 

sudo killall -HUP inetd

Creiamo una condivisione samba per recuperare via rete i pdf stampati
/etc/samba/smb.conf:

[pdf]
comment = Stampe PDF
writable = no
locking = no
path = /var/spool/pdf
public = yes

A questo punto non ci resta che configurare i client: basta aggiungere una stampante Postscript generica di rete su protocollo JetDirect (chiamato a volte “raw socket”) e il gioco è fatto. Per i sistemi operativi che non hanno un driver Postscript generico (non faccio nomi ;) ) suggerisco di usare i driver Apple della serie LaserWriter che sembrano generare del buon codice Postscript.
Ogni job stampato verrà automaticamente convertito in formato PDF e salvato in /var/spool/pdf con un nome generato in base a data e ora di stampa. Se è stata anche modificata la configurazione di samba sarà possibile accedere da remoto allo spool per prelevare i file PDF.


+ un daily cron job che cancella tutti i pdf piu' vecchi di un tot (tmpreaper)

TMP_DELETER="/usr/sbin/tmpreaper"
REMOVE_TIME="150" # espresso in ore
PDF_DIR="/var/spool/pdf"
$TMP_DELETER --verbose -a $REMOVE_TIME $PDF_DIR/