Aggiunta di informazioni OCR a un PDF


28

Ho una scansione di buona qualità di un documento; tale scansione è in formato pdf.

Come posso aggiungere informazioni ocr al pdf, in modo che possano essere ricercate? Per ricerca, intendo che l'obiettivo è che quando si visualizza il pdf con evince, CTRL-F in realtà mi permette di cercare nel contenuto pdf.



4
@Jakob, non penso sia un imbecille, stiamo chiedendo cose diverse. L'altra domanda riguarda l'estrazione di testo da alcuni pdf (ovvero la generazione di file txt corrispondenti), mentre la mia domanda riguarda la modifica del pdf per aggiungere informazioni ocr e rendere il lavoro la funzione di ricerca nel lettore pdf. Chiarirò la domanda.
fdierre,

Come e cosa hai usato per scansionare il documento?
Mitch

@Mitch Ho usato la mia stampante / copiatrice / scanner Ricoh Aficio MP-C2500, che ha un ottimo alimentatore di documenti. :-)
fdierre

Software di scansione e / o OCR?
Mitch

Risposte:


21

pdfsandwich

Fa quello che vuoi e fornisce i pacchetti deb Ubuntu. Utilizza tesseract come motore OCR. La seguente chiamata aggiunge il livello di testo al PDF acquisito:

pdfsandwich scanned.pdf

Di seguito fa lo stesso ma con un'altra lingua (codice ISO 639-2, tesseract-ocr-LANGCODEpacchetto download ) e impostazione del layout:

pdfsandwich  -verbose -lang spa -layout single scanned.pdf

In caso di errore, scaricare deb dell'ultima versione da Sourceforge .

Disclaimer: sono lo sviluppatore di pdfsandwich e quindi ovviamente distorto.


6
Questo è davvero fantastico, grazie. Tuttavia, sembra modificare le immagini, sembra che abbia una maschera di contrasto su di esse o qualcosa del genere. C'è un modo per lasciare le immagini esattamente come prima? Nel mio caso particolare, il filtro è riuscito persino a rimuovere la barra da un paio di frazioni in alcune equazioni. Tutto il resto funziona abbastanza bene però ...
niente

Pacchetto di cattiva qualità: `Lintian controlla i risultati per /tmp/pdfsandwich_0.1.3_amd64.deb: E: pdfsandwich: control-file-has-bad-Permissions md5sums 0664! = 0644 E: pdfsandwich: control-file-has-bad-owner md5sums james / james! = root / root E: pdfsandwich: wrong-file-owner-uid-or-gid usr / 1000/1000 E: pdfsandwich: wrong-file-owner-uid-or-gid usr / bin / 1000 / 1000 E: pdfsandwich: wrong-file-owner-uid-or-gid usr / bin / pdfsandwich ...
AB

Scarica l'ultima versione deb da SF . Se ricevi un errore alla fine potrebbe essere correlato a ghostscript (v0.1.4). Ora utilizza v0.1.6 pdfunite.
Pablo A

1
@PabloBianchi Esiste un modo per correggere manualmente il testo OCRed pdfsandwitch? Lo sto facendo con alcuni documenti svedesi, e funziona bene, ad eccezione di alcuni errori di ortografia (probabilmente a causa del carattere originale) che sarebbe facile da risolvere se fosse un file di testo, ma come posso farlo nel PDF risultante ?
zrajm,

@zrajm è possibile utilizzare alcuni dei parametri pdfsandwich per un migliore riconoscimento sul passaggio OCR. Per modificare il testo nascosto dietro l'immagine di un PDF puoi semplicemente modificare il livello delle caselle di testo con LibreOffice Draw, Inkscape o qualsiasi strumento di modifica PDF. Se trovi un modo migliore, pubblicalo qui. DaH jImej!
Pablo A


4

Ho trovato una soluzione non ideale, ma molto efficace.

Uso PDF X-Change Viewer tramite Wine. Ha una funzione OCR che aggiunge un livello di testo al pdf basato su immagini esistente.

Quindi puoi cercare e copiare il testo da questo livello invisibile.

inserisci qui la descrizione dell'immagine


2

Per una soluzione da riga di comando, è possibile utilizzare pdfocr .

In breve, installa il software:

$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:gezakovacs/pdfocr
$ sudo apt-get update
$ sudo apt-get install pdfocr

Quindi esegui pdfocr:

$ pdfocr -i scanned.pdf -o scanned.with.search.pdf

Ha funzionato per me su Ubuntu 12.04 LTS.


6
Github qui: github.com/gkovacs/pdfocr . Ma questo ha lo stesso problema pdfsandwich, in quanto modifica / comprime i PDF contenenti immagini di alta qualità, praticamente distruggendo alcune delle informazioni dell'immagine originale.
jmiserez,

2

Una soluzione che è facilmente implementabile e fornisce un pdf di output con la stessa qualità del file di input più dimensioni ragionevoli è OCRmyPDF:

https://github.com/jbarlow83/OCRmyPDF


Ho avuto risultati eccellenti con la tua sceneggiatura. A differenza di pdfocr di Geza Kovacs, non richiede librerie extra (difficili da compilare in alcune distro Linux!). Grazie!
Massimo

0

Questa è la mia soluzione rapida e sporca sulla base di ImageMagick di convert, tesseract, parallele pdftk(tutti disponibili sulle distribuzioni basate su Debian). È in gran parte basato su questo post del blog .

#!/bin/sh -ex

density=${2:-"300"} # default to 300 DPI if 2nd parameter is not given

convert -monitor -density "$density" "$1" -monochrome -compress lzw -alpha deactivate page_%05d.tif
parallel --bar "tesseract {} {.} pdf 2>/dev/null" ::: page_*.tif
pdftk page_*.pdf cat output "${1%.*}-ocred.pdf" compress

# Cleanup temp files
rm page_?????.tif page_?????.pdf

0

Per l'intera directory con file ppm è possibile utilizzare questo script ppm2ocrpdf.sh

#!/bin/sh

mkdir .pdf
for f in *.ppm; do
    echo " Running convert -compress JPEG -quality 88 "$f" -page a4 "$f"ppm.pdf"
    convert -compress JPEG -quality 88 "$f" -page a4 "$f"ppm.pdf
    echo " Running tesseract -l deu "$f" "$f" pdf"
    tesseract -l deu "$f" "$f" pdf
    echo " Running pdftk "$f".pdf cat output ./.pdf/"$f"ocr.pdf"
    pdftk "$f".pdf cat output ./.pdf/"$f"ocr.pdf
    echo " Running rm "$f"ppm.pdf"
    rm "$f"ppm.pdf
    echo " Running rm "$f".pdf"
    rm "$f".pdf
done
echo " Running pdftk *.pdf cat output ../outdocument.pdf"
pdftk ./.pdf/*.pdf cat output outOcrDocument.pdf
echo " Running rm ./.pdf/*.pdf"
rm ./.pdf/*.pdf
echo " Running rmdir .pdf"
rmdir .pdf
echo "Done"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.