Estoy buscando una herramienta de secuencias de comandos fuera de línea que haga que se pueda buscar un archivo PDF existente ejecutando OCR en él, reemplazando el archivo original que no se puede buscar con la versión que se puede buscar, y que se puede ejecutar sin supervisión.
Por ejemplo, www.pdfscannerapp.com: hace exactamente lo que necesito, pero es solo GUI, no programable.
Soy consciente de que Evernote hace que los archivos PDF se puedan buscar, pero solo se pueden buscar dentro de Evernote.
No estoy buscando un OCR perfecto, incluso un OCR moderadamente aceptable está bien, pero preferiría una pequeña utilidad en lugar de un paquete de software voluminoso.
(Soy consciente de una pregunta similar, pero diferente sobre AD: Buscando software para escanear o convertir a PDF con capacidad de búsqueda y firmable ; sin embargo, no necesito firmar o completar archivos PDF, y mi requisito es que la solución sea programable)
EDITAR:
1) Varias utilidades permiten la extracción de texto estructurado, sin embargo, para ser extraído, el texto debe estar allí; Me refiero principalmente a los PDF que son mapas de bits envueltos, como es el caso de los PDF simples generados por escáneres.
2) No estoy necesariamente buscando una solución gratuita, y estaría más que feliz de pagar por una buena utilidad que solo hace lo que necesito, pero no estoy buscando aplicaciones voluminosas con un millón de características que incluyen una función de OCR, pero cuyo costo no justifica comprarlos solo por la funcionalidad OCR.
3) Como se indicó anteriormente, no estoy buscando un OCR perfecto, solo un OCR moderadamente aceptable. Desafortunadamente, en mi experiencia, tesseract está realmente por debajo de ese umbral. Defino "moderadamente aceptable" un OCR que puede, por ejemplo, OCR una factura de servicios públicos para que al menos el número de cuenta (número de cliente) se reconozca correctamente.
EDITAR: "programable" o "automatizable", es decir, que puede activarse automáticamente y ejecutarse desatendido sin intervención humana alguna.
Respuestas:
No estoy del todo claro para mí cuáles son sus requisitos para poder "escribir" esto desde la "línea de comando".
Si habla de automatización, eso es posible con cualquier cantidad de utilidades.
ABBYY FineReader Express + Teclado Maestro + Hazel
Yo uso ABBYY FineReader Express + Keyboard Maestro + Hazel así:
Hazel monitorea una carpeta dada para cualquier PDF nuevo
Si se encuentra un PDF, se abre en "ABBYY FineReader Express"
Luego, Keyboard Maestro automatiza el proceso de convertir el PDF en un PDF con capacidad de búsqueda (OCR) y guarda el archivo en un directorio diferente.
Ahora, si aún no posee Hazel y Keyboard Maestro, sus costos iniciales van a aumentar bastante rápido (aunque dependo tanto de ambos que los considero una ganga).
PDFPen + AppleScript + Acciones de carpeta
Podría hacer algo similar con PDFPen (o PDFPenPro) y las acciones de carpeta y AppleScript. Consulte https://gist.github.com/prenagha/1355037 para ver un ejemplo.
Marco Arment hizo una encuesta de las aplicaciones de OCR para Mac y descubrió que PDFPen tenía excelentes resultados y era fácil de automatizar.
Una búsqueda en Google para "PDFpen applescript OCR" mostrará varias alternativas.
fuente
Lo que quieres es Tesseract OCR. Es un OCR de código abierto que mantiene Google y admite una variedad de plataformas. También tiene una interfaz de línea de comando nativa. Es exactamente lo que está buscando y está disponible en el proyecto de puertos Mac, así como en homebrew .
Página principal del proyecto: https://github.com/tesseract-ocr
Cómo instalar en OS X: http://blog.matt-swain.com/post/26419042500/installing-tesseract-ocr-on-mac-os-x-lion
Ejemplo de uso:
tesseract -l eng input.pdf output
fuente
Descargo de responsabilidad: NO ES UNA SOLUCIÓN OCR (pero esta respuesta sigue siendo útil para extraer texto de pdf)
Hay un proyecto de Apache Software Foundation llamado Apache Tika :
Admiten la extracción de texto en PDF con PDFBox :
Y recientemente también agregaron soporte para OCR (a través de Tesserac)
Para una solución basada en texto, PDFBox hace que extraer texto de un PDF sea muy simple:
pdfbox-app
paquete de https://pdfbox.apache.org/downloads.htmlejecuta el
ExtractText
comando en él:java -jar pdfbox-app-xyzjar ExtractText myNiceBook.pdf myNiceBook.txt
También tiene algunas otras buenas opciones que puedes ver en los documentos de ExtractText .
fuente
yo recomendaria DEVONThink Pro Office . Es una excelente aplicación y tiene muy buen soporte para AppleScript. Por desgracia, solo la versión 'Pro Office' tiene la capacidad de OCR, por lo que tendrá que pagar £ 100 ($ 150).
Sería excesivo si solo lo usa para OCR con script, pero es una muy buena aplicación.
[editar] - ah, solo relee tu publicación - ¡definitivamente sería exagerado!
Si solo desea OCR desde el shell, puede intentar hablar con ABBY cuyo motor DEVON licencia:
http://www.abbyy-developers.com/en:tech:samples:commandline_ocr
fuente
Puede hacer que su PDF existente se pueda buscar convirtiéndolo en un archivo de texto. Necesita al menos Imagemagick , Ghostscript (para la conversión de PDF) y la herramienta Tesseract OCR.
Algún ejemplo de línea de comandos:
Esto puede extenderse aún más a sus necesidades.
Para instalar las herramientas requeridas, en OSX puede instalarlo a través de Homebrew :
En uso de Linux
apt-get
o enyum
lugar debrew
.Para obtener más herramientas de OCR, consulte: OCR en sistemas Linux
Relacionado:
fuente
Una solución que es fácilmente implementable y que proporciona un PDF de salida con la misma calidad de archivo de entrada más un tamaño razonable es OCRmyPDF:
https://github.com/jbarlow83/OCRmyPDF
fuente
Stackoverflow tiene preguntas relacionadas en el análisis de PDF que cubren cosas como PDFBox y TIKA de Apache que utiliza PDFBox. El siguiente código de ruby extrae la escritura de PDF. Debe tener una resolución suficientemente buena para que este tipo de códigos funcione de manera sólida. Así que obtenga un escáner lo suficientemente bueno con gran resolución y luego vea si algunos de los softwares funcionan.
Ejemplos
Hilos 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]
No estoy seguro si entendí tu problema ahora. ¿Desea agregar una capa de OCR a diferentes tipos de material, como fotos aleatorias, capturas de pantalla, PDF sin capa de OCR, etc.? No conozco la solución, pero estoy seguro de que alguien sabe, así que le hice una pregunta específica sobre cómo hacerlo con Automator y algún software de OCR:
¿Automator-script con un software OCR para agregar automáticamente OCR al material?
fuente
Para este tipo de aplicación autodirigida, soy un gran admirador de Hazel.
Hace que sea extremadamente fácil escribir acciones sin necesidad de aprender una herramienta más orientada a la línea de comandos como perl o python y emparejada con el motor de OCR de su elección (el mío es actualmente PDF Pen Pro), no debería tener problemas para procesar sus archivos con un mínimo escándalo.
Ambos son software pago, pero la utilidad de ambos se extiende mucho más allá de este caso. En mi situación, con el trabajo involucrado en la digitalización de mis registros escaneados anteriores (y el documento en curso), el precio de estos supera con creces el tiempo que habría pasado programando esto en otro lugar y ahora que tengo ambas herramientas, puedo hacer muchas otras tareas con ellos.
fuente
PDFScannerApp tiene un soporte de secuencias de comandos no oficial. Póngase en contacto con el autor para la acción de Automator.
fuente
Yo uso Adobe Acrobat para OCR en lote. Mi escáner dúplex puede OCR después de escanear, pero la tecnología OCR en Acrobat es más precisa en mi opinión. Solo apunto a la carpeta que no tiene OCR y luego acrobat re guarda el PDF como PDF con capacidad de búsqueda que ahora incluye una capa de texto. Si quisiera OCR a través de la línea de comando, no conozco una manera, pero puedo automatizar el final de la GUI usando Autohotkey. No es tan confiable ni rápido como la línea de comandos, pero hace el trabajo después de configurar una acción de flujo de trabajo para minimizar la interacción de la GUI.
Para Mac, Apple Script hace lo que hace Autohotkey en la PC, aunque todavía no lo he probado en mi Mac.
La tecla de acceso directo automática viene con una grabadora, por lo que la mayor parte de la escritura del guión es una cena para usted con un poco más de edición para refinar y tal vez hacer un bucle si lo desea.
He estado experimentando imágenes de OCR pero aún no he automatizado el proceso completamente a través de acrobat. La línea de comando es ideal, pero no he encontrado un motor de OCR de calidad que supere a Acrobat, por lo que me quedo con Acrobat por ahora.
fuente
Me topé con esto recientemente: http://ocrkit.com/faq.html
Sin embargo, debe pagar después de 14 días.
fuente
Obtuve una conversión de arrastrar y soltar de alta calidad con Docker.
Si tu:
"as arguments"
/bin/bash
texto del guión:Debería ser bueno arrastrar y soltar archivos PDF y obtendrá un PDF con un nombre similar con "-ocr" adjunto al nombre del archivo.
Me imagino que podría modificarse fácilmente para devolver un archivo a Automator para copiarlo en algún lugar también. Más detalles sobre el excelente paquete acoplable OCRmyPDF. y herramienta principal (también mencionada en una respuesta diferente).
Puede probarlo en Automator con la acción "Obtener elementos del Finder especificados" como entrada para esto.
La primera vez que se ejecuta, lleva más tiempo ya que necesitará descargar las imágenes de Docker para OCRmyPDF (de forma invisible). En Terminal, puedes correr alternativamente
docker pull jbarlow83/ocrmypdf
para acelerar la primera carrera. Una ejecución típica tarda unos 10 segundos por página de DPI alto, pero tiene resultados de texto a texto automáticamente incluso si hay tablas o diagramas. Antes de OCRing, recorte con Sejda para que se eliminen las palabras de margen sin sentido de otras páginas.El
--force-ocr
argumento le dice a la herramienta que ignore y sobrescriba cualquier intento anterior de OCR, que en mi caso suele ser solo parcial e inútil.fuente
OCRKit tiene soporte para AppleScript y una CLI. Desde su página de ayuda :
fuente