Permitir la búsqueda de PDF (OCR) existente mediante línea de comandos / script

19

Estoy buscando una herramienta de secuencias de comandos sin conexión que permita la búsqueda de un archivo PDF existente ejecutando OCR en él, reemplazando el archivo original que no se puede buscar con la versión de búsqueda, y que pueda ejecutarse sin supervisión.

Por ejemplo, www.pdfscannerapp.com: hace exactamente lo que necesito, pero solo es GUI, no programable.

Soy consciente de que Evernote hace que los archivos PDF puedan buscarse, 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 en AD: Buscando software para escanear o convertir a PDF con capacidad de búsqueda y firma . Sin embargo, no necesito firmar ni completar archivos PDF, y mi requisito es que la solución sea compatible con scripts. )

EDITAR:

1) Varias utilidades permiten la extracción de texto estructurado, sin embargo, para poder extraerlo, el texto debe estar allí; Me refiero principalmente a los archivos PDF que están ajustados a los mapas de bits, como es el caso de los archivos PDF simples generados por los escáneres.

2) No necesariamente estoy 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 funciones que incluyen una Función de OCR pero cuyo costo no justifica comprarlos solo por la funcionalidad de OCR.

3) Como se indicó anteriormente, no estoy buscando un OCR perfecto, solo un OCR moderadamente aceptable. Desafortunadamente, en mi experiencia, el tesseract está realmente por debajo de ese umbral. Defino "moderadamente aceptable" una OCR que puede, digamos, 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 en secuencias de comandos" o "automatizable", es decir, puede activarse automáticamente y ejecutarse de forma desatendida sin ninguna intervención humana.

    
pregunta magma 01.01.2013 - 18:20

12 respuestas

5

No me queda del todo claro cuáles son sus requisitos para poder "escribir" esto desde la "línea de comando".

Si está hablando de automatización, eso es posible con cualquier número de utilidades.

Teclado ABBYY FineReader Express + Maestro + Hazel

Uso ABBYY FineReader Express + Keyboard Maestro + Hazel así:

  1. Hazel supervisa una carpeta determinada para cualquier PDF nuevo

  2. si se encuentra un PDF, se abre en "ABBYY FineReader Express"

  3. El Maestro del teclado luego 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 aumentarán bastante rápidamente (aunque dependo de ambos, los considero una ganga).

PDFPen + AppleScript + Acciones de carpeta

Podrías hacer algo similar con PDFPen (o PDFPenPro) y acciones de carpeta y AppleScript. Consulte enlace para ver un ejemplo.

Marco Arment realizó una encuesta de aplicaciones OCR para Mac y descubrió que PDFPen tuvo excelentes resultados y fue fácil de automatizar.

Una búsqueda en Google de "PDFpen applescript OCR" mostrará varias alternativas.

    
respondido por el TJ Luoma 10.05.2013 - 09:50
9

Lo que quieres es Tesseract OCR. Es un OCR de código abierto que es mantenido por Google y soporta una variedad de plataformas. También tiene una interfaz de línea de comandos nativa. Es exactamente lo que está buscando y está disponible en el proyecto de puertos Mac, así como en homebrew .

Página de inicio del proyecto: enlace

Cómo instalar en OS X: enlace

Ejemplo de uso: tesseract -l eng input.pdf output

    
respondido por el Daniel Kocevski 14.05.2014 - 17:02
7

Descargo de responsabilidad: NO ES UNA SOLUCIÓN DE OCR (pero esta respuesta sigue siendo útil para extraer texto de pdf)

Hay un proyecto de Apache Software Foundation llamado Apache Tika :

  

Un kit de herramientas detecta y extrae metadatos y contenido de texto estructurado   de varios documentos utilizando bibliotecas de analizador existentes

Son compatibles con la extracción de texto PDF mediante PDFBox :

  

permite la creación de nuevos documentos PDF, la manipulación de documentos existentes y   La posibilidad de extraer contenido de documentos. Apache PDFBox también incluye   varias utilidades de línea de comando

Y recientemente también agregaron soporte para OCR (a través de Tesserac)

Para una solución basada en texto, PDFBox simplifica la extracción de texto de un PDF:

  • Descargue el paquete pdfbox-app desde enlace
  • ejecuta el comando ExtractText en él:

    java -jar pdfbox-app-x.y.z.jar ExtractText myNiceBook.pdf myNiceBook.txt

También tiene otras opciones interesantes que puede ver en ExtractText docs .

    
respondido por el brutuscat 10.03.2013 - 17:36
5

Recomendaría DEVONThink Pro Office . Es una aplicación excelente y tiene muy buena compatibilidad con AppleScript. Por desgracia, solo la versión 'Pro Office' tiene la capacidad de OCR, por lo que tendrá que desembolsar £ 100 ($ 150).

Sería excesivo si solo lo estuvieras usando para OCR con script, pero es una muy buena aplicación.

[editar] - ah, solo re-lee tu publicación - ¡definitivamente sería una exageración!

Si solo desea OCR desde el shell, puede intentar hablar con ABBY cuyo motor DEVON tiene licencias:

enlace

    
respondido por el Diggory 05.03.2013 - 14:05
4

Puedes hacer que tu PDF existente se pueda buscar convirtiéndolo en un archivo de texto. Necesitas para eso al menos Imagemagick , Ghostscript (para conversión de PDF) y Tesseract herramienta de OCR.

Ejemplo de línea de comando:

$ wget http://www.fmwconcepts.com/misc_tests/pdf_tests/test.pdf
$ convert -density 300 -depth 8 test.pdf test.png
$ tesseract test*.png test.txt
$ grep -i --color=auto the test*.txt
**The** details as told by surviving crew members, to **the** German publication Spiegel and published on ABC's

Esto puede extenderse a sus necesidades.

Para instalar las herramientas necesarias, en OSX puede instalarlo a través de Homebrew :

brew install imagemagick jpeg libpng ghostscript tesseract

En Linux, use apt-get o yum en lugar de brew .

Para obtener más herramientas de OCR, consulte: OCR en sistemas Linux

Relacionados:

respondido por el kenorb 01.10.2014 - 18:31
1

Stackoverflow tiene preguntas relacionadas en PDF-parsing que cubre aspectos como el PDFBox y el TIKA de Apache que utiliza el PDFBox. El código de rubí que se encuentra debajo extrae la escritura de PDF. Debe tener una resolución lo suficientemente buena para que este tipo de códigos funcione de manera sólida. Así que obtenga un escáner suficientemente bueno con una resolución grande y luego vea si algunos de los softwares funcionan.

Ejemplos

  1. enlace

Subprocesos SO

  1. enlace

  2. enlace

  3. enlace

  4. enlace

[Editar]

No estoy seguro de si entendí tu problema ahora. ¿Desea agregar una capa de OCR a diferentes tipos de material, como fotos aleatorias, capturas de pantalla, archivos PDF sin capa de OCR, etc.? No conozco la solución, pero estoy seguro de que alguien sabe, por lo que formuló 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?

    
respondido por el hhh 10.03.2013 - 19:57
1

Para este tipo de aplicación autodirigida, soy un gran fan 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 emparejado con el motor OCR de su elección (el mío actualmente es PDF Pen Pro). No debería tener problemas para obtener sus archivos. procesado con mínimo esfuerzo.

Ambos de estos son software de pago, pero la utilidad de ambos se extiende mucho más allá de este caso. En mi situación, con la mano de obra involucrada en la digitalización de mis registros escaneados pasados (y el papel 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.

    
respondido por el bmike 14.05.2014 - 17:14
1

Una solución que es fácilmente implementable y que proporciona un pdf de salida con la misma calidad de archivo de entrada y tamaño razonable es OCRmyPDF:

enlace

    
respondido por el user127022 08.11.2017 - 17:50
0

PDFScannerApp tiene un soporte de scripts no oficial. Póngase en contacto con el autor para la acción de Automator.

    
respondido por el ndf 10.05.2013 - 08:04
0

Uso Adobe Acrobat para OCR por lotes. 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 Acrobat vuelve a guardar el PDF como un PDF con capacidad de búsqueda que ahora incluye una capa de texto. Si quisiera hacer OCR a través de la línea de comandos, no conozco una forma, pero puedo automatizar el fin de la GUI utilizando 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 Autohotkey hace en la PC, aunque todavía no lo he probado en mi Mac.

Las teclas de acceso rápido automáticas vienen con una grabadora, por lo que la mayoría de los guiones de escritura son una cena para ti con un poco más de edición para perfeccionar y quizás hacer un bucle si quieres eso.

He estado experimentando imágenes de OCR, pero todavía no he automatizado el proceso completamente a través de Acrobat. La línea de comandos es ideal, pero no he encontrado un motor de OCR de calidad que supere a Acrobat, así que me quedo con Acrobat por ahora.

    
respondido por el Sun 02.07.2016 - 00:42
0

Me topé con esto recientemente: enlace

Tienes que pagar después de 14 días

    
respondido por el Charlton 26.12.2016 - 18:28
0

Obtuve Drag & de alta calidad Conversión de caída trabajando con Docker.

Si usted:

  1. instale Docker para su Mac y
  2. luego crea una nueva aplicación Automator
  3. con estos contenidos dentro de una acción "Ejecutar un script de shell". Elegir entrada de pase: "as arguments"

/bin/bash texto del script:

cd "'dirname "$1"'"
/usr/local/bin/docker run --rm -v "$(pwd):/home/docker" jbarlow83/OCRmyPDF --force-ocr "'basename "$1"'" "'basename -s .pdf "$1"'-ocr.pdf"

Entonces deberías ser bueno para arrastrar y soltar archivos PDF sobre él y obtendrás un PDF de nombre similar con "-ocr" anexado al nombre del archivo.

Me imagino que también podría modificarse fácilmente para devolver un archivo a Automator para copiarlo en algún lugar. Más detalles sobre el excelente paquete docker OCRmyPDF. y herramienta principal (también mencionada en una respuesta diferente).

Puedes probarlo en Automator con la acción "Obtener elementos del Finder especificados" como entrada para esto.

La primera vez que se ejecuta, puede llevar más tiempo, ya que tendrá que descargar las imágenes de Docker para OCRmyPDF (invisiblemente). En la Terminal, también puede ejecutar docker pull jbarlow83/ocrmypdf para acelerar la primera ejecución. Una ejecución típica toma alrededor de 10 segundos por página de alto DPI, pero tiene resultados de texto a discurso, incluso si hay tablas o diagramas. Antes de hacer OCR, recorte utilizando Sejda para eliminar las palabras de margen sin sentido de otras páginas.

El argumento --force-ocr le dice a la herramienta que ignore y sobrescriba cualquier intento anterior de OCR, que en mi caso generalmente es solo parcial e inútil.

    
respondido por el thadk 13.01.2018 - 02:31

Lea otras preguntas en las etiquetas