Estou procurando uma ferramenta de script offline que torne um arquivo PDF pesquisável existente executando o OCR nele, substituindo o arquivo não pesquisável original pela versão pesquisável e que possa ser executado sem supervisão.
Por exemplo, www.pdfscannerapp.com - faz exatamente o que eu preciso, mas é apenas uma interface gráfica do usuário - não programável.
Estou ciente de que o Evernote torna os arquivos PDF pesquisáveis, mas eles permanecem pesquisáveis apenas quando estão dentro do Evernote.
Não estou procurando um OCR perfeito, mesmo um OCR moderadamente aceitável é bom, mas eu preferiria um pequeno utilitário em vez de um pacote de software volumoso.
(Estou ciente de uma pergunta semelhante, mas diferente, sobre o AD: Procurando software para digitalizar ou converter em PDF pesquisável e assinável - no entanto, não preciso assinar ou preencher PDFs, e minha exigência é que a solução seja programável)
EDITAR:
1) Vários utilitários permitem a extração estruturada de texto; no entanto, para ser extraído, o texto deve estar lá; Refiro-me principalmente a PDFs que contêm bitmaps agrupados, como é o caso de PDFs simples gerados por scanners.
2) Não estou necessariamente procurando uma solução gratuita e ficaria mais do que feliz em pagar por um bom utilitário que apenas faça o que eu preciso, mas não estou procurando aplicativos volumosos com um milhão de recursos que incluem um recurso de OCR, mas cujo custo não justifica comprá-los apenas para a funcionalidade OCR.
3) Como mencionado acima, não estou procurando um OCR perfeito, apenas um OCR moderadamente aceitável. Infelizmente, na minha experiência, o tesseract está realmente abaixo desse limite. Defino um OCR "moderadamente aceitável" que pode, por exemplo, OCR uma conta de serviço público para que pelo menos o número da conta (número do cliente) seja reconhecido corretamente.
EDIT: "programável por script" ou "automatizável", ou seja, capaz de ser acionado automaticamente e executado automaticamente sem a necessidade humana de entrada.
Respostas:
Não está totalmente claro para mim quais são seus requisitos para poder "script" isso na "linha de comando".
Se você está falando sobre automação, isso é possível com qualquer número de utilitários.
ABBYY FineReader Express + Teclado Maestro + Hazel
Eu uso o ABBYY FineReader Express + Keyboard Maestro + Hazel da seguinte forma:
Hazel monitora uma determinada pasta em busca de novos PDFs
se um PDF for encontrado, ele será aberto no "ABBYY FineReader Express"
O Keyboard Maestro automatiza o processo de transformar o PDF em um PDF pesquisável (OCR) e salva o arquivo em um diretório diferente.
Agora, se você ainda não possui o Hazel e o Keyboard Maestro, seus custos iniciais aumentarão muito rapidamente (embora eu dependa de ambos, considero-os uma pechincha).
Ações PDFPen + AppleScript + Folder
Você pode fazer algo semelhante com o PDFPen (ou PDFPenPro) e ações de pasta e AppleScript. Veja https://gist.github.com/prenagha/1355037 para um exemplo.
Marco Arment fez uma pesquisa de aplicativos de OCR para Mac e descobriu que o PDFPen tinha ótimos resultados e era fácil de automatizar.
Uma pesquisa no Google por "PDFpen AppleScript OCR" exibirá várias alternativas.
fonte
O que você deseja é o Tesseract OCR. É um OCR de código aberto que é mantido pelo Google e suporta uma variedade de plataformas. Ele também possui uma interface de linha de comando nativa. É exatamente o que você está procurando e disponível no projeto de portas Mac e em homebrew .
Página inicial do projeto: https://github.com/tesseract-ocr
Como instalar no OS X: http://blog.matt-swain.com/post/26419042500/installing-tesseract-ocr-on-mac-os-x-lion
Exemplo de uso:
tesseract -l eng input.pdf output
fonte
Isenção de responsabilidade: NÃO É UMA SOLUÇÃO DE OCR (mas esta resposta ainda é útil para extrair texto de pdf)
Existe um projeto da Apache Software Foundation chamado Apache Tika :
Eles suportam a extração de texto em PDF usando o PDFBox :
Recentemente, eles também adicionaram suporte ao OCR (via Tesserac)
Para uma solução baseada em texto, o PDFBox facilita muito a extração de texto de um PDF:
pdfbox-app
pacote em https://pdfbox.apache.org/downloads.htmlexecute o
ExtractText
comando nele:java -jar pdfbox-app-xyzjar ExtractText myNiceBook.pdf myNiceBook.txt
Ele também tem outras opções interessantes que você pode ver nos documentos do ExtractText .
fonte
Eu recomendaria o DEVONThink Pro Office . É um excelente aplicativo e possui um ótimo suporte ao AppleScript. Infelizmente, apenas a versão 'Pro Office' tem capacidade de OCR - então você terá que desembolsar £ 100 (US $ 150).
Seria um exagero se você o estiver usando apenas para OCR com script - mas é um aplicativo muito bom.
[editar] - ah, basta reler sua postagem - isso seria um exagero!
Se você deseja apenas o OCR a partir do shell, tente conversar com a ABBY cujo mecanismo DEVON licencia:
http://www.abbyy-developers.com/en:tech:samples:commandline_ocr
fonte
Você pode tornar seu PDF existente pesquisável convertendo-o em arquivo de texto. Você precisa disso, pelo menos , Imagemagick , Ghostscript (para conversão de PDF) e Tesseract OCR.
Alguns exemplos de linha de comando:
Isso pode ser estendido às suas necessidades.
Para instalar as ferramentas necessárias, no OSX você pode instalá-lo via Homebrew :
No Linux, use
apt-get
ou emyum
vez debrew
.Para obter mais ferramentas de OCR, verifique: OCR em sistemas Linux
Palavras-chave:
fonte
Uma solução que é facilmente implementável e fornece um pdf de saída com a mesma qualidade de arquivo de entrada e tamanho razoável é o OCRmyPDF:
https://github.com/jbarlow83/OCRmyPDF
fonte
O Stackoverflow tem perguntas relacionadas na análise de PDF, cobrindo itens como PDFBox e TIKA do Apache que o PDFBox usa. O código ruby abaixo extrai a gravação em PDF. Você precisa ter uma resolução suficientemente boa para que esse tipo de código funcione de maneira robusta. Portanto, adquira um scanner bom o suficiente com uma resolução grande e verifique se alguns softwares funcionam.
Exemplos
Segmentos SO
/programming/5217783/pdf-parse-to-text-in-java
/programming/8149179/alternative-to-tika-pdfbox-for-parsing-pdf-in-solr-any-version-later-than-1-4
/programming/320621/ruby-pdf-parsing-gem-library
/programming/15186740/haskell-parsing-reading-content-of-pdf-files
[Editar]
Não tenho certeza se entendi seu problema agora. Você deseja adicionar a camada OCR a diferentes tipos de material, como fotos aleatórias, capturas de tela, PDFs sem a camada OCR e assim por diante? Não sei a solução, mas tenho certeza de que alguém sabe uma pergunta específica sobre como fazê-lo com o Automator e alguns softwares de OCR:
Script de automação com um software OCR para adicionar automaticamente o OCR ao material?
fonte
Para esse tipo de aplicativo auto-direcionado, sou um grande fã de Hazel.
Torna extremamente fácil o script de ações sem a necessidade de aprender uma ferramenta mais orientada à linha de comando, como perl ou python, e emparelhado com o mecanismo de OCR de sua escolha (o meu atualmente é o PDF Pen Pro), você não terá problemas para processar seus arquivos com o mínimo discutir.
Ambos são softwares pagos, mas a utilidade de ambos se estende além deste caso. Na minha situação, com o trabalho envolvido na digitalização de meus registros digitalizados passados (e em papel), o preço deles supera em muito o tempo que eu gastaria programando isso em outro lugar e agora que possuo as duas ferramentas, posso realizar muitas outras tarefas com eles.
fonte
O PDFScannerApp possui um suporte não oficial a scripts. Entre em contato com o autor para a ação do Automator.
fonte
Eu uso o Adobe acrobat para OCR em lote. Meu scanner duplex pode OCR após a digitalização, mas a tecnologia OCR no acrobat é mais precisa na minha opinião. Apenas aponto para uma pasta que não possui OCR e, em seguida, o Acrobat salva o PDF como PDF pesquisável, incluindo agora uma camada de texto. Se eu quisesse fazer o OCR por linha de comando, não sei como, mas posso automatizar o final da GUI usando a Autohotkey. Não é tão confiável nem rápido como a linha de comando, mas executa o trabalho após a configuração de uma ação de fluxo de trabalho para minimizar a interação da GUI.
Para o Mac, o script da apple faz o que o Autohotkey faz no PC, embora ainda não tenha experimentado no meu Mac.
A tecla de atalho automática vem com um gravador, de modo que a maior parte da escrita do roteiro é um jantar para você, com um pouco de edição para aprimoramento e, talvez, um loop, se você quiser.
Venho experimentando imagens de OCR, mas ainda não automatizei o processo completamente por meio do acrobat. A linha de comando é ideal, mas ainda não encontrei um mecanismo de OCR de qualidade que exceda o acrobat, por isso fico com o acrobat por enquanto.
fonte
Eu me deparei com isso recentemente: http://ocrkit.com/faq.html
Você tem que pagar depois de 14 dias
fonte
Eu obtive uma conversão de arrastar e soltar de alta qualidade usando o Docker.
Se vocês:
"as arguments"
/bin/bash
texto do script:Você deverá arrastar e soltar PDFs nele e obterá um PDF com o mesmo nome com "-ocr" anexado ao nome do arquivo.
Eu imagino que poderia ser facilmente modificado para retornar um arquivo ao Automator para copiar em algum lugar também. Mais detalhes sobre o pacote docker fino do OCRmyPDF. e ferramenta principal (também mencionada em uma resposta diferente).
Você pode testá-lo no próprio Automator com a ação "Obter itens especificados do Finder" como entrada para isso.
Na primeira vez em que é executado, leva mais tempo, pois será necessário fazer o download das imagens do Docker para OCRmyPDF (invisivelmente). No Terminal, você pode executar alternativamente
docker pull jbarlow83/ocrmypdf
para acelerar a primeira execução. Uma execução típica leva cerca de 10 segundos por página de alta DPI, mas tem resultados automaticamente de texto para voz, mesmo se houver tabelas ou diagramas. Antes do OCR, cortei usando Sejda para remover palavras de margem sem sentido de outras páginas.O
--force-ocr
argumento diz à ferramenta para ignorar e substituir quaisquer tentativas anteriores de OCR, que nos meus casos geralmente são apenas parciais e inúteis.fonte
O OCRKit possui suporte AppleScript e uma CLI. Na página de ajuda deles :
fonte