Programa para extraer tablas de archivos PDF
Una de las mayores pesadillas a la que nos enfrentamos cuando manipulamos un archivo PDF es a como extraer los datos de una tabla sin echar a perder la estructura de la tabla. Tenemos la fortuna de disponer de algún programa para extraer tablas de archivos PDF, que en nuestro caso vamos echaremos mano de Tabula.
Cuando trabajamos con tablas de archivos PDF, nuestro viejo amigo de copiar y pegar, suele dar resultados catastróficos y en el mejor de los casos mantiene el texto copiado, pero no la estructura de la tabla. Con Tabula conseguiremos mantener el contenido de las tablas intacto, además de disponer los datos en su estructura original.
Cómo extraer datos de tablas de documentos PDF.
En primer lugar, tendremos que descargar el programa Tabula, disponible en Github y en su página oficial. Se trata de un programa de código abierto y gratuito, pero me llama la atención que un programa tan útil no se haya actualizado desde el 2018. A pesar de la falta de actualizaciones, Tabula funciona realmente bien.
Una vez descargado el programa, que vienen todo lo necesario comprimido en un archivo .zip
, por lo que basta con descomprimir este archivo y ejecutar el programa tabula.exe
. Tras iniciar el programa, tarda unos segundos en inicializar todas las dependencias y termina por abrir una interfaz web en nuestro navegador por defecto que apunta a la URL http://127.0.0.1:8080/
.
Usando Tabula para extraer datos de tablas PDF.
Llegados a este punto, basta con pulsar el botón «Browse» de la interfaz web de tabula y seleccionar el archivo PDF deseado. A continuación, pulsamos el botón «Import». Tardará un rato en procesar el archivo PDF y se nos mostrará en pantalla la interfaz en la que definimos las selecciones.
Las selecciones no son más que las áreas donde se encuentran las tablas. Se puede usar la función «Autodetect Tables», pero no está muy pulida, yo prefiero hacer las selecciones de forma manual. El proceso es muy sencillo, navegando por el propio PDF desde Tabula, podemos dibujar rectángulos de selección. Trataremos de que estos rectángulos se ajusten de la forma más precisa posible a las tablas que queremos extraer.
Una vez finalizado el proceso de establecer las selecciones, pulsaremos el botón «Preview y Export Extracted Data». Ahora vemos que se muestra en pantalla una previsualización de los datos extraídos. Si estamos satisfechos con los resultados, seleccionamos el formato de salida (CSV, TSV, Json, etc) y pulsamos el botón «Export».
Diferencias entre los métodos de extracción de Tabula.
Tabula ofrece dos métodos de extracción, uno llamado Stream y otro llamado Lattice. Su principal diferencia es que el método Stream busca espacios en blanco para determinar el formato de las tablas, mientras que Lattice busca líneas para determinar las celdas de la tabla.
Si con el método Stream no obtenemos buenos resultados, recomiendo probar con Lattice y viceversa. Dependerá de muchos factores el conseguir buenos resultados, no sólo depende del formato de extracción.
Algunos parámetros que pueden afectar son la resolución, la calidad de los archivos PDF, los colores de los bordes de la tabla, etc.