2009-09-28 107 views
19

Tengo un montón de archivos PDF que provienen de documentos escaneados. Los archivos contienen una mezcla de imágenes y texto. Algunos fueron escaneados como imágenes sin OCR, por lo que cada página PDF es una imagen grande, incluso cuando toda la página es enteramente texto. Otros fueron escaneados con OCR y contienen imágenes y texto de búsqueda donde el texto está presente. En muchos casos, incluso las palabras en las imágenes se hicieron búsquedas.¿Cómo saber si un PDF contiene solo imágenes o ha sido escaneado con OCR para buscar?

Quiero hacer un proceso automatizado para reconocer el texto en todos los documentos escaneados utilizando OCR, con Acrobat 8 ​​Pro, pero no quiero volver a OCR los archivos que ya han pasado por el proceso de OCR en el pasado. ¿Alguien sabe si hay alguna forma de saber cuáles contienen solo imágenes y cuáles contienen texto con capacidad de búsqueda?

Estoy planeando hacer esto en C# o VB.NET, pero no creo que poder distinguir los dos tipos de archivos sea dependiente del idioma.

Respuesta

17

Las imágenes escaneadas convertidas a PDF que se han grabado con OCR después para que el texto pueda buscarse normalmente contienen las partes de texto representadas como "invisibles". Entonces, lo que ves en la pantalla (o en el papel cuando está impreso) sigue siendo la imagen original. Pero cuando busque con éxito, obtendrá los aciertos resaltados que están en el texto invisible.

Te recomiendo que mires las herramientas de línea de comandos derivadas de XPDF pdffonts(.exe), pdfinfo(.exe) y pdftotext(.exe). Vea aquí descargas: http://www.foolabs.com/xpdf/download.html

Ejemplo de uso de pdffonts:

C:\downloads\> pdffonts cisco-ip-phone-7911-guide6.1.pdf 
name         type    emb sub uni object ID 
------------------------------------ ----------------- --- --- --- --------- 
LGOKFL+Univers-BlackOblique   Type 1C   yes yes no 13171 0 
LGOKGM+Univers-Black     Type 1C   yes yes no 13172 0 
[....] 

Este PDF utiliza fuentes (indicados por la columna 'nombre'), ellos incorporado tiene (indicado por el 'sí' en el columna 'emb') y utiliza fuentes de subconjunto (indicadas por 'sí' en la columna 'sub').

C:\downloads\> pdffonts examle1.pdf 
name         type    emb sub uni object ID 
------------------------------------ ----------------- --- --- --- --------- 
Univers-BlackOblique     Type 1C   yes no no 14 0 
Arial        TrueType   no no no 15 0 

Este PDF utiliza 2 fuentes (indicadas por la columna 'nombre'). La fuente 'Universe-BlackOblique' está incrustada por completo (indicada por el 'sí' en la columna 'emb' y el 'no' en la columna 'sub'). La fuente 'Arial' también se usa, pero no está incrustada.

C:\downloads\> pdffonts examle2.pdf 
name         type    emb sub uni object ID 
------------------------------------ ----------------- --- --- --- --------- 

Este PDF no utiliza una sola fuente, y por lo tanto no tiene ningún texto incrustado (OCR por lo que no tampoco).

Ejemplo de uso de pdftotext:

C:\downloads\> pdftotext^
        -layout^
        cisco-ip-phone-7911-guide6.1.pdf^
        cisco-ip-phone-7911-guide6.1.txt 

Esto extraerá todas las cadenas de texto desde el PDF (tratando de preservar una cierta semejanza de la disposición original). Si no hay ningún texto en el PDF, sabría que no había OCR ...

+0

Intenté su enfoque pero ¿algún comando escaneado de pdffile "pdffonts" aún devolvía la fuente Helvetica? ¿Puede explicarme o guiarme cómo puedo lograr esto de manera más precisa? Gracias –

+0

@DanglingPiyush: Sin una muestra de un archivo Scan-PDF de este tipo, no puedo decir de dónde proviene Helvetica. ¿Puedes proporcionar una página de muestra que muestre este comportamiento? –

+0

http://www.fileconvoy.com/dfl.php?id=gcc3a2153e00e0a7699953105370fc438c2a90509b Este es el enlace al PDF de muestra que contiene solo imágenes escaneadas pero pdffonts muestra Helvectica Font. Por favor échele un vistazo. –

3

Varias herramientas de PDF pueden indicarle si hay texto. Algunos están disponibles como controles COM, y tal vez incluso nativos .NET.

+0

¿Me puede recomendar uno que sepa que funciona, o que debería probar? – Bratch

+3

http://www.leadtools.com/ –

0

Apago pdfspy extrae información de PDF en un archivo XML. Incluye información sobre el documento, incluidas imágenes y texto. Para su proyecto, la información útil incluye el tamaño de la imagen & y donde hay texto OCR (oculto).

http://www.apagoinc.com/pdfspy

1

Abra el documento en Acrobat. Ve a Archivo -> Propiedades. Busque en la sección "Avanzado" y encuentre el productor de PDF. Si se lee algo como "Captura de papel ...", entonces ha sido OCR.

Espero que esto ayude.

+0

Correcto, en mis conjuntos de muestras, los PDF basados ​​en imágenes tienen un PDF Producer en blanco, pero los mostrados con OCR muestran "Adobe Acrobat 8.16 Paper Capture Plug-in". Pero encontré otra que tiene texto seleccionable y el productor es, "Acrobat Distiller 5.0.5 (Windows)". Y otro con texto, "http://createpdf.adobe.com v5.1". Otros con el texto "Microsoft Office Word 2007" y "GPL Ghostscript 8.54". Parece que el productor está en blanco para archivos PDF basados ​​en imágenes, pero algún otro valor para archivos PDF que contienen texto. – Bratch

0

momento de desenterrar viejo hilo, pero si has encontrado este echar un vistazo a mi hilo:

Batch OCR Program for PDFs

puede obtener información adicional sobre el pdf categóricamente en unix/linux/osx o abriéndolo como modo "rb" en python. (Por supuesto que es python y no quería usar eso, pero tal vez tiene algo equivalente).

-1

Una solución de muy baja tecnología: cualquier archivo que tenga texto escaneado sin duda contendrá la letra "a" así que haga una búsqueda en todos los archivos que no contengan la letra a. es decir, "NO a". Cualquier archivo que aparezca no tendrá OCR

-1

Use "dtsearch" para crear un índice para todos los archivos pdf ... luego "vea el archivo de registro" del proceso de indexación para verificar la lista de archivos PDF archivos que no fueron indexados

Cuestiones relacionadas