venerdì 5 novembre 2010

Confrontare le differenze fra due documenti PDF (2)

Qualche giorno fa ho illustrato un semplice script bash che permette di eseguire un confronto elementare fra due documenti PDF per cercarne le differenze. Tuttavia, come ho spiegato, questo script ha numerosi difetti perché cerca essenzialmente differenze nel testo dei due documenti (se è in grado di estrarre correttamente il testo da essi). Esiste però un programma a interfaccia grafica che permette di eseguire un confronto più efficace: DiffPDF. Questo pacchetto è fornito dalle principali distribuzioni GNU/Linux; in Debian, Ubuntu & Co. bisogna installare il pacchetto diffpdf con il Gestore pacchetti Synaptic oppure da terminale con il solito comando:
sudo apt-get install diffpdf
Per le altre distribuzioni fare riferimento al proprio gestore pacchetti.

Il programma può essere avviato dal lanciatore (in Ubuntu: ApplicazioniAccessoriDiffPDF) oppure da terminale con il comando
diffpdf
È possibile passare come argomenti i percorsi dei documenti che si vogliono confrontare:
diffpdf /percorso/del/file1.pdf /percorso/del/file2.pdf



Normalmente DiffPDF mette a confronto i testi dei documenti, ma, come potete vedere dallo screenshot seguente, è possibile anche effettuare un confronto visuale fra due documenti, per poter cercare differenze fra le immagini. Per fare ciò bisogna selezionare Appearance nel menu a tendina Comparison Mode in alto a destra e rieseguire il confronto con il pulsante Compare situato più in basso, sempre sul pannello di destra. Questa modalità potrebbe fornire dei falsi positivi (come succede nell'immagine proposta) perché non viene più confrontato solo del testo, ma comunque i risultati sono in genere molto buoni.



Anche qui propongo uno Script per Nautilus che permette di avviare DiffPDF con pochi clic selezionando i file che si desidera confrontare:
#!/bin/bash

titolo="Confronta PDF"

function controlla() {
    estensione=$(echo "$1" | cut -d. --complement -f1)
    case $estensione in
        [pP][dD][fF])
            ;;
        *)
            zenity --error --title="$titolo" --text="Devi selezionare due file con estensione \".pdf\"."
            exit 1
    esac
}

if [ $# -ne 2 ]; then
    zenity --error --title="$titolo" --text="Devi selezionare due file PDF alla volta."
    exit 1
fi
pdf1="$1"
pdf2="$2"
controlla "$pdf1" && controlla "$pdf2"
if [ $? -eq 0 ]; then
    diffpdf "$pdf1" "$pdf2"
else # non dovrebbe arrivare mai qui, metto per sicurezza
    zenity --error  --title="$titolo" --text="Si è verificato un errore."
    exit 1
fi
exit 0
Per utilizzare questo script aprite un file vuoto con un editor di testo, copiate lo script nell'editor e salvatelo nella cartella ~/.gnome2/nautilus-scripts (ricordo che la tilde ~ è un'abbreviazione della cartella home dell'utente corrente) chiamandolo, per esempio, "Confronta PDF". Rendete eseguibile lo script e così potrete selezionare due file PDF da confrontare che si trovano nella stessa cartella e, facendo clic con il tasto destro, scegliete ScriptConfronta PDF (o il nome che avete dato allo script).

Nessun commento:

Posta un commento

I commenti inseriti vengono lasciati dall'autore degli stessi accettandone ogni eventuale responsabilità civile e penale.
Il curatore del blog si riserva la possibilità di eliminare messaggi contenenti frasi offensive o spam.