Como criar PDF com páginas digitalizadas, mas com texto selecionável?

32

Hoje, recebi um PDF de nosso fornecedor e ele continha várias páginas impressas e digitalizadas com assinaturas etc. Abri no Acrobat Reader DC. Mas, para minha surpresa, o texto das imagens digitalizadas evidentemente poderia ser selecionado e copiado como um texto. Veja a captura de tela:

PDF digitalizado com texto selecionável

Evidentemente, existe algum OCR por trás disso, pois o texto copiado contém erros. Mas como isso é possível? Eu nunca vi isso antes, como isso pode ser criado?

Vojtěch Dohnal
fonte
4
Pacotes como github.com/gkovacs/pdfocr permitem que isso aconteça para PDFS de imagens já existentes
exussum
Qual é a diferença entre os resultados obtidos pelo OCR em lote e muitos PDFs ?
Dmitry Grigoryev
@DmitryGrigoryev Eu nunca tinha visto esse tipo de PDF antes, então perguntei o que era. Não há nada sobre o firmware da impressora OCR ou OCRMyPDF nas respostas, tanto a pergunta quanto as respostas são muito diferentes. Não vejo nada duplicado, exceto que as duas perguntas são sobre OCR e PDFs.
Vojtěch Dohnal
Bem, nunca vi um PDF de OCR diferente do que você postou, é por isso que sua pergunta me parece estranha.
Dmitry Grigoryev

Respostas:

53

Isso tem (ao contrário de outras respostas aqui) provavelmente não tem nada a ver com o Acrobat.

A maioria (todos ?!) dos scanners de documentos profissionais e a maioria dos semi-profissionais executam automaticamente o OCR quando você escolhe "Salvar como PDF" e tem a caixa de seleção "pesquisável" marcada nas configurações. Os modelos mais baratos de "grau de consumidor" farão o OCR no PC conectado, os scanners de rede típicos o farão internamente.

A palavra "pesquisável" significa nada mais e nada menos que o scanner executará o OCR, gerará uma página com os bitmaps digitalizados e os cobrirá com caracteres invisíveis do OCR, cada um colocado sobre o respectivo caractere no bitmap.

Dessa forma, você pode pesquisar e também selecionar, copiar e colar o "bitmap" como que por mágica. Não é mágica, no entanto. Na realidade, você está apenas copiando texto invisível.

O scanner também pode fazer algumas mágicas adicionais, como compor a imagem grande de muitos blocos pequenos que também são reutilizados. Isso resulta em um tamanho de documento muito menor do que seria realmente possível, mas também pode levar a surpresas engraçadas (não tão engraçadas se acontecerem com você!), Como a Xerox altera a história de suas contas , ironicamente, mesmo quando não há OCR, dependendo no firmware.

Damon
fonte
Sim, é provavelmente como eles o criaram, duvido muito que eles usem o Adobe Acrobat completo.
Vojtěch Dohnal
Fizemos isso colocando todo o texto atrás da imagem digitalizada, onde o OCR relatou onde encontrou cada nó de texto.
Thorbjørn Ravn Andersen
10

Mas como isso é possível?

Basicamente, um programa executa OCR no arquivo de entrada e, em seguida, coloca uma camada invisível de texto sobre a imagem. Como alternativa, também pode colocar uma camada visível de texto embaixo da imagem, dando o mesmo efeito.

Quando você seleciona algo, a imagem não importa, porque a camada de texto é selecionada.

como isso pode ser criado?

Existem várias maneiras. Como o Acrobat já foi sugerido, adicionarei algumas opções gratuitas (e felizmente você não é obrigado a ter o Windows para usá-las).

Visualizador de PDF-XChange

Este é um programa Windows nativo da Tracker Software . A versão do freeware funciona bem no Wine se você usar a edição de 32 bits em um prefixo de 32 bits; portanto, você pode usá-lo no Windows, macOS e Linux. Nos dois últimos casos, você precisaria do PlayOnMac ou PlayOnLinux, respectivamente.

Aqui está uma foto desta resposta que eu deixei no Ask Ubuntu:

Captura de tela do PDF-XChange Viewer no Wine

OCRmyPDF

Este é um programa multiplataforma escrito em Python , baseado em Ghostscript, Tesseract e Unpaper. Dos documentos:

O que o OCRmyPDF faz

O OCRmyPDF analisa cada página de um PDF para determinar o espaço de cores e a resolução (DPI) necessários para capturar todas as informações nessa página sem perder o conteúdo. Ele usa o Ghostscript para rasterizar a página e, em seguida, executa no OCR na imagem rasterizada para criar uma "camada" de OCR. A camada é então enxertada de volta no PDF original.

Pode ser facilmente instalado nos derivados Debian e Ubuntu:

apt-get install ocrmypdf

Ou no macOS:

brew tap jbarlow83/ocrmypdf
brew install ocrmypdf

No Windows, você precisaria usar a imagem do Docker. Consulte os documentos oficiais para obter detalhes.

O uso é muito simples e eu sugiro que você use os parâmetros opcionais -d(deskew) e -c(clean) para obter melhores resultados. Ele endireitará todas as páginas e limpará pequenos pontos / imperfeições antes de executar o processo de OCR.

Você pode (e deve) fornecer o idioma -l.

Aqui está um exemplo deste documento distorcido escrito em italiano:

Exemplo para OCRmyPDF

O comando que eu usei foi:

ocrmypdf -l ita -d -c input.pdf output.pdf

Ferramentas online

Existem algumas ferramentas online que fazem o mesmo. Notável, o PDF24 hospeda uma versão gratuita do OCRmyPDF baseada na Web que pode ser usada sem limitações.

Veja também:

Andrea Lazzarotto
fonte
Obrigado por esta resposta, eu tentei o OCRMyPDF e funcionou muito bem, mas infelizmente o suporte ao idioma de que eu preciso ainda não está maduro, portanto os resultados ainda não eram muito úteis.
Vojtěch Dohnal
@ VojtěchDohnal, em que idioma você está interessado? Você instalou o pacote de idiomas relevante para o Tesseract? Veja a lista aqui: macports.org/ports.php?by=name&substr=tesseract-
Andrea Lazzarotto
4

Isso possivelmente ocorre devido a um recurso do Acrobat OCR :

O Acrobat pode reconhecer texto em qualquer arquivo PDF ou de imagem em dezenas de idiomas. Tudo o que você precisa fazer é abrir o documento ou a imagem digitalizada que deseja OCR e clicar no botão azul Ferramentas no canto superior direito da barra de ferramentas. Na barra lateral, selecione a guia Reconhecer texto e clique no botão Neste arquivo.

...

Com o texto reconhecido, agora você pode marcar o PDF usando todas as ferramentas normais de marcação - você pode realçar, riscar texto e muito mais . Você pode até copiar o texto com a formatação detectada, embora isso geralmente seja menos preciso que o próprio reconhecimento de texto.

cara
fonte
Isso funciona no Reader também? Outros documentos não funcionam dessa maneira para mim ...
Vojtěch Dohnal
Receio que não, mas dê uma olhada neste artigo: pdf.wondershare.com/pdf-software-comparison/…
duDE
3

No site da Adobe

Reconhecer texto em um arquivo PDF digitalizado

Ao digitalizar documentos em papel para PDF, você está realmente apenas tirando fotos desses documentos. Isso é ótimo para fotos e outras imagens impressas, mas e se você tiver um documento de 200 páginas no qual precisa encontrar uma palavra ou frase específica? Use o Acrobat para reconhecer o texto nesse arquivo digitalizado, tornando o conteúdo do texto pesquisável e utilizável.

  1. Com o documento digitalizado aberto no Acrobat, abra o painel Ferramentas e expanda o painel Reconhecimento de texto. Se você não conseguir ver "Reconhecimento de texto" no painel Ferramentas, poderá adicioná-lo selecionando o menu no canto superior direito (imagem abaixo - veja para onde a pequena seta vermelha está apontando? Clique aqui).
  2. Clique em "Neste arquivo" para digitalizar o documento que você abriu. Você pode simplesmente aceitar as configurações padrão e clicar em "OK" quando a caixa Reconhecer texto aparecer. O Acrobat converterá a imagem em texto utilizável; para testá-lo, tente editar uma palavra ou frase com o painel Edição de conteúdo. Isso não é demais?
Máté Juhász
fonte
Obrigado, mas eu apenas abri o PDF no Reader DC e fez nada de especial com ele, outros documentos PDF com páginas digitalizadas não funcionam dessa maneira automaticamente ...
Vojtěch Dohnal
5
O OCR foi feito ANTES de você receber o arquivo, quando o texto é reconhecido, ele é salvo junto com o pdf.
Máté Juhász
@ VojtěchDohnal Você provavelmente precisa de um acrobata completo, não apenas do leitor #
Thorbjørn Ravn Andersen