Ottimizzare la dimensione dei PDF su linux, con un solo click
In questi giorni avevo necessità di creare uno script che mi permettesse di ottimizzare i PDF generati dal mio scanner, per ridurne le dimensioni. Inoltre, volevo poter lanciare lo script direttamente da nautilus tramite un click destro sul file.
Dopo aver vagato inutilmente per il web ho deciso di crearne uno da zero :)
Prima di tutto, ho creato un file chiamato optimizePDF.sh:
#!/bin/bash for file in "$@"; do echo "Processing $file"; gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -sOutputFile=/tmp/tempfile.pdf "$file"; if [ $? -eq 0 ]; then mv /tmp/tempfile.pdf "$file"; zenity --info --text 'File converted successfully!' else rm /tmp/tempfile.pdf zenity --error --text 'Error during conversion! The original file has not been modified. Sorry!' fi done
Ciò che fa è semplice: nei parametri con cui lancio lo script passo il nome del file (o i nomi, se è più di un file), lui lo "passa" a ghostscript (gs) e tramite un'accurata scelta di parametri lo comprime, preservando comunque una buona qualità.
Una volta creato il file l'ho spostato in /usr/bin, in modo tale da renderlo raggiungibile da tutti gli utenti:
sudo mv optimizePDF.sh /usr/bin
Volendo è già possibile utilizzare lo script lanciandolo a mano:
$ optimizePDF.sh /path/del/file.pdf
Però io avevo necessità di lanciarlo direttamente da nautilus, così ho creato (tramite Nautilus-Actions Configuration Tool, che a voi non servirà) il pulsante da infilare nel menu contestuale (quello che compare con il click destro del mouse selezionando uno o più file PDF). Per questa funzionalità sarà sufficiente scaricare questo file ed importarlo tramite il comando
gconftool-2 --load action-2e093541-6845-426b-836b-a05d9bffcd8d.xml
Et voilà! Facile no? :)