Archivio

Posts Tagged ‘pdf’

Unire e dividere PDF: PDF-Shuffler

Può capitare a volte di dover manipolare dei file PDF, come unire più documenti in un unico file. Il repository di Ubuntu si rileva ancora una volta ricco di software pronto per l’uso.

PDF-Shuffler (pacchetto pdfshuffler nel repository universe) è uno strumento molto semplice ma efficace, che consente di effettuare diverse operazioni di base sui PDF:

  • unire più file PDF in un unico documento
  • estrarre una o più pagine da un file PDF
  • riordinare le pagine all’interno dello stesso documento
  • eliminare una o più pagine da un documento
  • ruotare o ritagliare singole pagine

Il programma viene posizionato nel menu di Gnome sotto la categoria Ufficio. L’interfaccia è molto semplice e si compone di tre pulsanti: Delete Page(s) per eliminare una o più pagine selezionate, Import pdf per caricare il documento di partenza (o un documento successivo da unire), Export pdf per salvare il PDF finale.

PDF-Shuffler

La finestra di PDF-Shuffler, con sul fondo i tre pulsanti operativi: Delete Page(s), Import pdf, Export pdf.

Oltre a questi tre pulsanti, è possibile fare click con il tasto destro sulle singole pagine per ruotarle in senso orario o antiorario (Rotate), ritagliarle in percentuale (Crop), eliminarle.

PDF-Shuffler (menu contestuale)

Operazioni disponibili sulle singole pagine con il click destro del mouse.

Le funzionalità finiscono qui, ma questo semplifica le cose, quando non è necessario altro. Ad esempio, per unire due file PDF “A” e “B”, è sufficiente:

  • aprire PDF-Shuffler
  • cliccare Import pdf e scegliere il file “A”
  • cliccare Import pdf e scegliere il file “B”
  • cliccare Export pdf e selezionare il nome del nuovo file unito.

Vi sono sicuramente altri strumenti simili per unire o dividere file PDF, tra questi ricordo:

  • PDF Split and Merge (pacchetto pdfsam), è realizzato in Java e ne richiede varie librerie tra le dipendenze. Molto potente per eseguire operazioni ricorrenti, in quanto è possibile salvare le opzioni di unione o spezzatura dei file. Utile ad esempio la funzionalità per esportare tutte le pagine di un PDF in una cartella, nominando il file con il numero della pagina.
  • PDF Chain (pacchetto pdfchain), è una interfaccia grafica ai comandi messi a disposizione dal famoso toolkit pdftk. Oltre ad unire e spezzare PDF, consente di sovrapporre PDF di sfondo o di primo piano, e gestire gli allegati.
Annunci
Categorie:Software Tag:,

OCR su file PDF tramite script nautilus

Nell’articolo Scansione testo con OCR su Linux, ho spiegato come effettuare l’acquisizione di testo OCR direttamente al termine di una scansione effettuata con l’applicativo XSane, sfruttando ImageMagick e Tesseract. In Ubuntu 10.04 il software predefinito per la scansione è il nuovo Simple Scan, ottimo dal punto di vista della semplicità e della velocità d’uso, ma come ci si poteva aspettare, carente di funzionalità OCR. Peraltro Simple Scan consente di salvare le scansioni multipagina in formato PDF, e non TIFF, richiedendo di conseguenza la conversione a quest’ultimo formato per la maggior parte degli applicativi OCR gratuiti.

Con questo articolo, vedremo come creare uno “script nautilus“, cioè una sequenza di comandi richiamabile dal menu contestuale di Nautilus, cioè il tasto destro su un file o una cartella.

Nel menu vengono elencati tutti i file eseguibili presenti nella cartella nascosta .gnome2/nautilus-scripts dell’utente. Dopo aver aperto la propria Cartella home, attivare dal menu Visualizza la voce Mostra file nascosti, aprire quindi la cartella .gnome2, e al suo interno nautilus-scripts.

Creare un file vuoto (tasto destro > Crea documento > File vuoto), modificarlo nell’editor di testo inserendo lo script. Infine per renderlo eseguibile, accedere alle proprietà del file (tasto destro > Proprietà) e nella scheda Permessi attivare l’opzione Consentire l’esecuzione del file come programma.

Tornando allo script oggetto di questo articolo, esso richiede i pacchetti: imagemagick, tesseract-ocr, tesseract-ocr-ita (per il dizionario parole italiano), installabili quindi tramite il comando:

sudo apt-get install imagemagick tesseract-ocr tesseract-ocr-ita

Lo script nautilus da creare nella cartella .gnome2/nautilus-scripts, a cui io ho dato il nome “Scansione OCR” è il seguente:

#!/bin/sh
for arg
do
 if [ ${arg##*.} = "pdf" ]
 then
 convert -colorspace rgb -density 500 "$arg" -resize 50% -monochrome -median 1 /tmp/scansione_ocr_tmp.tif | zenity --progress --pulsate --text="Conversione in TIFF in corso..." --auto-close
 tesseract /tmp/scansione_ocr_tmp.tif "$arg".txt -l ita  | zenity --progress --pulsate --text="Acquisizione OCR in corso..." --auto-close
 rm /tmp/scansione_ocr_tmp.tif
 else
 tesseract "$arg" "$arg".txt -l ita  | zenity --progress --pulsate --text="Acquisizione OCR in corso..." --auto-close
 fi
done

Lo script completo è scaricabile a questo indirizzo: http://paste.ubuntu.com/8091658/

Funzionamento: lo script esegue anzitutto un controllo sull’estensione del file; se è PDF esegue la conversione in formato TIFF, nella cartella temporanea /tmp, lancia l’acquisizione OCR, quindi elimina il file TIFF temporaneo; se è un formato diverso (es. è già TIF), avvia direttamente l’acquisizione OCR.

La conversione PDF > TIFF viene eseguita tramite il comando convert della libreria ImageMagick; tra le opzioni ho specificato -monochrome, per ottenere un TIFF in bianco/nero (più facile da elaborare) e -median 1, per pulire l’immagine dalle imperfezioni tramite il Median Filter. I più esperti di ImageMagick, potranno arricchire il comando con ulteriori perfezionamenti.

L’acquisizione OCR genera quindi il testo in un file nella stessa cartella del PDF sorgente, chiamato <nomefilesorgente>.txt.

Infine, i comandi zenity servono per ottenere a video una finestra che indica lo stato dell’operazione.

Penso che questo script possa essere utile, sicuramente si più migliorare e perfezionare, ma semplifica il procedimento di acquisizione OCR, che il Linux resta un “punto critico”.


Aggiornamento 17/01/2015: i parametri precedente utilizzati per la conversione in TIFF, sembrano non andare più bene alla libreria Tesseract. Prendendo spunto dall’articolo “Using Tesseract OCR with PDF scans” ho quindi modificato lo script, rimuovendo -colorspace rgb e -monochrome, e aggiungendo -depth 8; inoltre ho modificato i DPI (density) a 300.

Lo script aggiornato è scaricabile a questo indirizzo: http://paste.ubuntu.com/9769367/

Categorie:Guide Tag:, , , ,