Extractor de tablas de Pdfs

El extractor de tablas de Pdfs nacio como un intento de ofrecer una nueva herramienta para solucionar esa necesidad

Descripción

La librería permite extraer las estructuras de tablas de un rango de páginas de un Pdf

Devuelve una lista de elementos, que pueden ser líneas de texto o tablas

Las tablas tienen una estructura bidimensional de celdas, a las que se puede acceder individualmente para obtener su contenido.

Descripción del código

Con la versión v3.0 de la librería se sigue una estrategia más adecuada para la determinación de las áreas de las celdas de las tablas.

Se aplica una especie de detección de bordes, pero más adaptada a líneas perfectamente horizontales y verticales.

Después de la obtención de los bordes de la tabla, se realiza un procesamiento extra y se obtienen las ubicaciones de cada celda, y luego los textos contenidos en cada una de esas celdas.

Esta parece la versión definitiva, a falta de detectar y recopilar casos no cubiertos y para poder cubrirlos de manera adecuada.

Pantallas

Extractor de tablas de Pdfs v1.0 (2024)

Descargar

Extractor de tablas de Pdfs v2.0 (2024-2025)

Descargar

Extractor de tablas de Pdfs v3.0 (2025)

Descargar

Versiones

image

Aprovechando las clases programadas para la aplicación ChessPdfBrowser, que lee partidas de los PDFs de ajedrez, he podido crear una versión beta de la librería para la extracción de texto de PDFs incluyendo elementos tabulados

La librería recorre las páginas indicadas, extrayendo su texto, y mientras se extrae el texto, se buscan patrones en forma de tabla, que se extraen de manera especial (en forma de matriz rectangular)

Espero que le pueda ser útil a alguien

image

Caen en mis manos algunos Pdfs con tablas, con los que puedo experimentar

Se ve que la v1.0 de la librería no es muy general, y puede funcionar con unos Pdfs y con otros no

Con la nueva versión, se crean varias configuraciones en base a la prueba y error con los Pdfs de prueba.

Cada configuración, puede funcionar bien con unos Pdfs y mal con otros.

La idea de la nueva versión, es que se puedan extraer las tablas con todas las configuraciones creadas, y luego, con un selector de idoneidad, crear una combinación de resultados óptima.

No siempre se consigue la extracción perfecta, pero puede ser un buen inicio


Si tienes tablas que no se extraen bien con ninguna de las configuraciones, puedes ponerte en contacto conmigo para ver si se puede añadir una nueva configuración que funcione con tu tabla.

image
image

La nueva versión de la librería aparece con la intención de mejorar la extracción de tablas.


La mejora propuesta para esta versión, es detectar los bordes de las tablas antes de hacer ningún procesamiento con los textos, y extraer los textos de cada celda conociendo a priori su ubicación.

Los bordes de extraen aplicando correlaciones básicas de líneas perfectamente horizontales y verticales y, con un poco de procesamiento extra, se pueden extraer los bordes completos de las tablas.

Una vez se han obtenido los bordes, se genera un grafo con las conexiones inmediatas de cada vértice y, recorriendo este grafo, se pueden recuperar las áreas de las celdas de las tablas.


La librería devuelve una mezcla ordenada de las tablas y los párrafos que no están en niguna tabla, tratando de respetar el orden en el layout del Pdf

El parseador en teoría puede detectar layouts en una o varias columnas, o una combinación particular, que el parseador de párrafos inferirá con un poco de suerte.

Esto debería ocurrir sin intervención extra en las llamadas, simplemente usando los constructores por defecto.

Los otros constructores de los parseadores toman objetos de configuración con muchos parámetros, así que si el parseador no funciona perfectamente con tu Pdf, es muy posible que pueda hacerlo "simplemente" tuneando ese objeto de configuración.

Ardua tarea si no eres el desarrollador de la librería, por lo que me ofrezco, a intentar tunear esa configuración en caso de que la librería no funcione del todo bien con tu Pdf. (frojasg1@hotmail.com)

Descargas