2009-04-22 23 views
5

¿Alguien ha intentado extraer texto de un PDF utilizando una biblioteca OCR y Java? ¿Cuál crees que es la biblioteca más confiable para la extracción de texto? La mayoría de los enfoques que he visto (tesseract, GOCR) son bibliotecas C que requerirían que se escriba algún código JNI.Método de extracción de texto PDF mediante OCR

Estoy familiarizado con pdfbox, que ahora es un proyecto de incubadora Apache en la versión 0.8.x, pero su extracción de texto no siempre es precisa. Estoy buscando un enfoque alternativo que sea algo más confiable.

No he probado Asprise JavaPDF aún, en el proceso de intentarlo, pero quería saber más acerca del enfoque de OCR (si es posible).

Cualquier ayuda sería apreciada.

+0

¿Está utilizando un PDF estructurado? Si es así, tiene la capacidad en JAVA para tomar el texto de los metadatos PDF. – northpole

+1

No, no todos los PDF están estructurados. – Jon

Respuesta

1

Si desea extraer el OCR del PDF basado en texto, es posible que primero tenga que convertirlo en una imagen.

7

Si tiene un PDF basado en texto, recomiendo encarecidamente PDFTextStream. No es gratis, pero la licencia es razonable, y es mucho mejor que PDFBox. PDFBox ahoga en muchos archivos PDF que son generados por herramientas más nuevas, y no es muy consistente con los archivos PDF que puede manejar. PDFTextStream maneja cualquier PDF que arroje, incluidos archivos PDF con imágenes PNG incrustadas, que PDFBox no puede hacer.

Si molesta a las personas de PDFTextStream para que agreguen OCR, es posible que escuchen.

+0

Gracias, suena bien, lástima por el precio ... – Jon

+1

Varios años después, pero ahora PDFTextStream tiene una versión gratuita (con una tapa de 1 banda de rodadura) –

+0

Si el PDF ya está basado en texto, ¿por qué hablar de OCR? Simplemente use PDFBox, iText, PDFTextStream, o lo que sea para analizar el texto. OCR es para los momentos en que el PDF es una imagen, por ejemplo, desde un escáner. Si el PDF es una imagen escaneada, ni PDFBox, iText ni PDFTextStream lo ayudarán. – mmcrae

1

Puede usar envolturas Java de Tesseract - tesjeract o Tess4J - para realizar OCR. Sin embargo, para PDF, primero deberá convertir a imagen (PNG o TIFF) antes de alimentarlo al motor de OCR.

VietOCR llama a Tesseract ejecutable para realizar la extracción de texto. Utiliza GhostScript para hacer la conversión de PDF a imagen.

2

Utilizamos ABBYY FineReader Engine 11. Tienen envoltura de Java.

Pros:

  • Funciona muy bien con todos los idiomas (Inglés, ruso, uzbeko, etc.) y haciendo verdadera OCR (incluso si tiene pdf sin OCR que realizar el renderizado en un primer momento y OCR de).

Contras:

  • Cuesta. Tienes que comprar licencia de desarrollador y licencia de usuario final.

  • Y es EXTREMADAMENTE lento.

+0

Gracias por responder y por su honestidad acerca del producto. Durante algunos años, las preguntas que piden recomendaciones de herramientas no están relacionadas con el tema, y ​​responderlas se considera "no hecho". (en realidad, la pregunta debería eliminarse si ya no tiene ningún uso) –

Cuestiones relacionadas