32 votos

Hacer búsquedas en PDFs existentes ( OCR ) a través de la línea de comandos / script

Estoy buscando una herramienta offline que permita realizar búsquedas en un archivo PDF existente mediante la ejecución de un OCR, sustituyendo el archivo original sin búsquedas por la versión con búsquedas, y que pueda ejecutarse de forma desatendida.

Por ejemplo, www.pdfscannerapp.com - hace exactamente lo que necesito, pero es una interfaz gráfica de usuario, no se puede programar.

Soy consciente de que Evernote hace que los archivos PDF se puedan buscar, pero sólo se pueden buscar dentro de Evernote.

No busco 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.

(Estoy al tanto de una pregunta similar, pero diferente, en AD: Buscando un software para escanear o convertir a PDF con capacidad de búsqueda y de firma - sin embargo, no necesito firmar o rellenar PDFs, y mi requisito es que la solución sea scriptable)

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 los escáneres.

2) No busco necesariamente una solución gratuita, y estaría más que feliz de pagar por una buena utilidad que sólo haga lo que necesito, pero no busco aplicaciones voluminosas con un millón de funciones que incluyan una función de OCR pero cuyo coste no justifique su compra sólo por la funcionalidad de OCR.

3) Como ya he dicho, no busco un OCR perfecto, sólo un OCR medianamente aceptable. Desafortunadamente, en mi experiencia, tesseract está realmente por debajo de ese umbral. Defino como "moderadamente aceptable" un OCR que pueda, por ejemplo, hacer un OCR de una factura de servicios públicos de manera que al menos el número de cuenta (número de cliente) sea reconocido correctamente.

EDIT: "scriptable" o "automatable", es decir, capaz de activarse automáticamente y ejecutarse sin necesidad de intervención humana.

2 votos

...no sé lo difícil que sería hacerlo, pero Tesseract OCR se menciona a menudo code.google.com/p/tesseract-ocr y OCR en Unix.SE .

1 votos

Hay una pregunta similar aquí ¿se ajusta la respuesta a sus necesidades?

1 votos

Usted menciona el OCR. ¿Sus requisitos incluyen el manejo de imágenes dentro de PDF, o de archivos PDF escaneados? En el caso de los archivos que contienen texto en forma de postscript, un convertidor de PDF a texto como "PDF2Text Pilot" podría servirle.

20voto

Daniel Kocevski Puntos 61

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

Proyecto de casa: 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

0 votos

Bonito proyecto. En mis pruebas, el reconocimiento fue pobre, pero estoy seguro de que eso depende de mi incapacidad para ajustarlo. Yo buscaba una solución más perezosa, pero esta puede ser una buena opción sobre todo si quieres más control y puedes dedicarle tiempo.

0 votos

tesseract no es muy bueno comparado con otras aplicaciones propietarias más actuales. En particular, tiene problemas con la codificación y las matemáticas, y a menudo produce muchos caracteres griegos.

0 votos

¿Permite la versión de OS X introducir datos en PDF? La versión de Windows no lo permite.

8voto

Andrew Hanson Puntos 965

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

Existe un proyecto de la Apache Software Foundation llamado Apache Tika :

Un conjunto de herramientas detecta y extrae metadatos y contenido de texto estructurado de varios documentos utilizando las bibliotecas de análisis sintáctico existentes

Admiten la extracción de texto en PDF mediante PDFBox :

permite crear nuevos documentos PDF, manipular los existentes y la capacidad de extraer el contenido de los documentos. Apache PDFBox también incluye varias utilidades de línea de comandos

Y recientemente también han añadido soporte para OCR (vía Tesserac)

Para una solución basada en texto, PDFBox hace que sea muy sencillo extraer texto de un PDF:

También tiene otras buenas opciones que puedes ver en Documentos de ExtractText .

0 votos

Definitivamente es una buena opción para extraer texto, pero no hay capacidad de OCR que pueda ver.

1 votos

@magma OCR significa "reconocimiento óptico de caracteres", definitivamente hay "capacidad de OCR". Ahora necesitas aclarar: ¿tu problema es extraer el texto de una imagen de baja resolución, como la generada con una cámara VGA, un escáner deficiente o una imagen lejana? Entonces su problema es diferente y requiere la consideración física de cosas como la super-resolución. Por favor, haga preguntas más específicas y cortas para que puedan ser respondidas. Te sugiero que simplifiques esta pregunta a una característica que quieras. Si quieres algo más, haz una nueva pregunta.

3 votos

@hhh, una cosa es extraer el texto de un archivo binario (como un PDF) para que sea utilizable y legible, analizando el formato binario. no hay nada óptico en ello. el texto ya está ahí, estas utilidades sólo lo extraen para que sea fácil para los ojos, por así decirlo. el reconocimiento óptico de caracteres es diferente en el sentido de que trata de reconocer patrones de píxeles en un mapa de bits y darles suficiente sentido como para producir un fragmento de texto correspondiente.

6voto

moodforaday Puntos 2633

No me queda del todo claro cuáles son tus requisitos para poder "scribir" esto desde la "línea de comandos".

Si te refieres a la automatización, entonces es posible con cualquier número de utilidades.

ABBYY FineReader Express + Keyboard Maestro + Hazel

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

  1. Hazel supervisa una carpeta determinada en busca de nuevos PDFs

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

  3. A continuación, 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 bien, si no tienes ya Hazel y Keyboard Maestro, tus costes iniciales van a aumentar bastante rápido (aunque yo dependo tanto de ambos que los considero una ganga).

PDFPen + AppleScript + Acciones de carpeta

Podría hacer algo similar con PDFPen (o PDFPenPro) y acciones de carpeta y AppleScript. Véase https://gist.github.com/prenagha/1355037 por ejemplo.

Marco Arment hizo un estudio de las aplicaciones de OCR para Mac y descubrí que PDFPen tenía grandes resultados y era fácil de automatizar.

Si se busca en Google "PDFpen applescript OCR", aparecerán varias alternativas.

0 votos

buena respuesta TJ. Hazel es increíble, lo tengo y disfruto mucho usándolo. Actualmente no tengo abbyy/keyboard maestro, pero Hazel + PDFPen es un combo increíble. En general, aunque todas las respuestas aquí son muy buenas, y sirven a públicos ligeramente diferentes, creo que Hazel+PDFPen es una buena opción para el problema original. Aceptado.

0 votos

+1 en ABBYYFineReader Express, fácilmente el mejor OCR que hay ahora mismo y he pasado por casi una docena para un proyecto propio

6voto

matthew k Puntos 11

Puede hacer que su PDF existente sea consultable convirtiéndolo en un archivo de texto. Para ello necesita al menos Imagemagick , Ghostscript (para la conversión de PDF) y Tesseract Herramienta OCR.

Algún ejemplo de línea de comandos:

$ 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 ampliarse aún más según sus necesidades.

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

brew install imagemagick jpeg libpng ghostscript tesseract

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

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

Relacionado:

0 votos

El ejemplo parece no funcionar con varios PNG. Hice un bucle y generé múltiples archivos de texto, de esa manera no obtuve 100s de errores extraños.

0 votos

También instalé tesseract-lang y añadí el parámetro -l deu para procesar el texto localizado y mejoró mucho la calidad del reconocimiento.

5voto

Chariza Duyugan Puntos 16

Yo recomendaría DEVONThink Pro Office . Es una aplicación excelente y tiene muy buen soporte de AppleScript. Por desgracia, sólo la versión 'Pro Office' tiene la capacidad de OCR, por lo que tendrás que desembolsar 100 libras (150 dólares).

Sería una exageración si sólo la utilizas para el OCR con guión, pero es una aplicación muy buena.

[editar] - ah, acabo de releer tu post - ¡sin duda sería una exageración!

Si sólo quieres el OCR de la cáscara, usted podría tratar de hablar con ABBY cuyo motor DEVON licencias:

http://www.abbyy-developers.com/en:tech:samples:commandline_ocr

0 votos

Aunque el DEVONThink Pro Office en OS X es una exageración, es interesante. Si los desarrolladores lo diseñaron sobre OS X e iOS, puede ser que funcione (manteniendo la interfaz de usuario más simple) -- ¿conoces algo así? Una buena idea: ¿la versión Pro añade automáticamente la capa de OCR a todo tipo de cosas, como capturas de pantalla y PDFs? ¿Y el usuario puede de alguna manera "scribir"?

2 votos

Sí, la aplicación cuenta con un buen diccionario de AppleScript que, entre otras cosas, permite convertir las imágenes almacenadas en la aplicación en PDF con capacidad de búsqueda.

0 votos

Supongamos que tomo fotos con el iPhone o capturas de pantalla con OS X y las pongo en una carpeta ProjectA, ¿el DEVONThink añade la capa de OCR automáticamente a ellos incluso sin especificar el idioma? Supongamos que los puso en un DropBox y luego hacer DEVONThink en OSX para comprobar la carpeta de forma automática, se podría trabajar con él sobre OS X y iOS entonces? Es un concepto fascinante si se hace bien ... +1

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X