Como transformar um pdf em um texto pesquisável em pdf?

11

Eu tenho vários documentos digitalizados em pdf e quero poder pesquisá-los. Como posso fazer isso?

Essencialmente eu tenho que OCR o pdf e depois misturar o texto extraído de volta em um novo pdf. Eu tentei, sem sucesso, várias soluções diferentes (incluindo as encontradas em Adicionando informações de OCR a um PDF ).

  1. pdfocr (o que me dá este problema: link )
  2. pdfsandwich (do qual o centro de software diz que é um pacote ruim e eu não deveria instalá-lo)
  3. O OCRfeeder (no centro de software) exporta para odt bem, mas não reage ao exportar para pdf.
  4. Gscan2pdf exporta uma imagem toda preta (mas pesquisável) conforme relatado nesta discussão .
  5. Não acho que o visualizador do Pdfxchange possa lidar com a execução instantânea em arquivos com mais de 500 páginas.

Existe um pacote de software que eu não conheço? Ou um script que faz isso?

    
por don.joey 29.05.2014 / 11:37

4 respostas

6

Após o comentário do Glutanimate, encontrei uma solução funcional. É o script OCRmyPDF .

git clone https://github.com/fritz-hh/OCRmyPDF
cd OCRmyPDF
sh ./OCRmyPDF.sh -h  # to see the usage

Se você receber uma mensagem dizendo que deve instalar o GNU paralelo. Isso pode ser feito (seguindo o link ) com (a segunda linha é opcional e depende do seu sabor e versão):

sudo apt-get install parallel
sudo rm /etc/parallel/config

Finalmente você pode OCR seu pdf com o comando:

sh ./OCRmyPDF.sh input.pdf output.pdf  # change input and output to the files you want

Se parecer que o comando não está respondendo, você pode aumentar o detalhamento usando o sinalizador -v (que pode ser usado incrementalmente como -vv ou -vvv ). Pode ser melhor testar primeiro os resultados em um pdf mais curto. Você pode encurtar um pdf da seguinte forma:

pdftk A=input.pdf cat A1-5 output output.pdf
    
por don.joey 30.05.2014 / 10:20
2

pdfsandwich executa exatamente esse trabalho. Eu não estava ciente de que há um pacote fornecido no centro de software, mas estou fornecendo pacotes deb do Ubuntu para ele no site do projeto (veja link para detalhes), incluindo a versão mais recente (0.1.2), que é improvável que esteja em qualquer centro de software ainda.

Se você tiver um arquivo digitalizado scanned_file.pdf , simplesmente chame

pdfsandwich scanned_file.pdf

que gera o arquivo scanned_file_ocr.pdf com o texto reconhecido adicionado às páginas digitalizadas.

Em comparação com a maioria das soluções existentes, ele detecta automaticamente a versão do tesseract instalado e adapta seu comportamento de acordo. Além disso, ele executa o pré-processamento das imagens digitalizadas antes do processo de OCR, como a descolagem ou a remoção de bordas escuras, etc., o que pode melhorar consideravelmente o reconhecimento óptico de caracteres.

AVISO LEGAL: Sou o desenvolvedor de pdfsandwich e, portanto, altamente influenciado.

    
por Tobias Elze 24.07.2014 / 16:29
2

@ don.joey respondeu com o script ocrmypdf . No entanto, pode ser instalado diretamente agora (a partir de 16.10).

sudo apt install ocrmypdf

Então você precisa instalar os idiomas tesseract necessários.

Para listar quais idiomas já estão em seu sistema, digite:

tesseract --list-langs

No caso de você perder um, instale-o. Por exemplo,

sudo apt install tesseract-ocr-spa

Agora você pode produzir um PDF pesquisável (cuja qualidade irá variar, dependendo do documento digitalizado) com o seguinte comando

ocrmypdf -l 'spa' old.pdf new.pdf

Você pode, claro, verificar sua página de manual para algumas opções adicionais.

    
por Ludenticus 11.02.2017 / 22:05
0

OCRfeeder tem um bug em

/usr/lib/python2.7/dist-packages/reportlab/pdfgen/textobject.py

a linha 436 deve ler:

            lines = asUnicode(stuff).strip().split('\n')
# bug here, was:
#            lines = '\n'.split(asUnicode(stuff).strip())

mudou isso e funcionou para mim

    
por AndreR 09.01.2017 / 23:24