quarta-feira, 19 de julho de 2017

OCR em arquivos PDF

Passo 1: Primeiramente, separei o PDF em vários arquivos, cada um com uma página, com o comando:
pdftk nome_do_arquivo.pdf burst

Fiz isto pois os próximos passos são boatwares e fizeram minha máquina reiniciar algumas vezes. :-)

Passo 2: Depois, converti cada uma destas páginas em uma imagem jpg com o comando:
for i in pg_0*pdf ; do convert -density 400 $i $i.jpg; done

Passo 3: Depois, usei o OCR (Optical Character Recognition) em cada uma das imagens, transformando-as em textos:
for i in pg_0*jpg ; do tesseract -l por $i $i; done

Passo 4: E isto resultou em um arquivo txt para cada página, conforme segue anexo.
Também fiz um arquivo txt com todas as páginas com o comando:
for i in pg_0*txt ; do cat $i >> completo.txt; done

E fiz um arquivo zip com os textos com o comando:
zip todos.zip pg*txt

Ou, em um único comando os passos 2, 3 e 4:

for i in pg_0*pdf ; do
echo "converting $i"
convert -alpha flatten -threshold 50% -background white -density 400 $i $i.png
tesseract -l por $i.png $i;
cat $i.png.txt >> completo.txt;
done