Extractor de taules de Pdfs

L'extractor de taules de Pdfs neix com a intent d'oferir una nova eina per a solucionar aquesta necessitat

Descripció

La llibreria permet extreure les estructures de taules d'un conjunt de pàgines d'un Pdf

Torna una llista d'elements que poden ser línies de text o taules

Les taules tenen una estructura bidimensional de cel.les, a les que ese pot accedir individualment per a obtenir el seu contingut.

Descripció del codi

Amb la versió v3.0 de la llibreria es segueix una estratègia més adient per a la determinació de les àrees de les cel.les de les taules.

S'aplica una espècie de detecció de vores, però més adaptada a línees perfectamente horitzontals i verticals.

Desprès de l'obtenció de les vores de la taula, es fa un processament extra i s'obtenen les ubicacions de cada cel.la, i desprès els texts continguts a cada una d'aquestes cel.les.

Aquesta sembla la versió definitiva, a falta de detectar i recopilar els casos no coberts i per a poder cubrir-los de manera adient.

Pantalles

Extractor de taules de Pdfs v1.0 (2024)

Descarregar

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

Descarregar

Extractor de taules de Pdfs v3.0 (2025)

Descarregar

Versions

image

Aprofitant les classes programades per a l'aplicació ChessPdfBrowser, que llegeix partides dels PDFs d'escacs, he pogut crear una versió beta de la llibreria per a l'extracció de text de PDFs incloent elements tabulats

La llibreria recorre les pàgines indicades, extraient el text, i durant l'extracció d'aquest text, es busquen patrons en forma de taula, que s'extrauen de manera especial (en forma de matriu rectangular)

Espero que li pugui ser útil a algú

image

Em faig amb alguns Pdfs amb taules, amb els que puc experimentar

Es pot veure que la v1.0 de la llibreria no era molt general, i que podia funcionar amb uns Pdfs i amb uns altres no

Amb la nova versió, es creen diferents configuracions en base a la prova i error amb els Pdfs de prova.

Cada configuració pot funcionar bé amb uns Pdfs i amb altres no.

La idea de la nova versió, és que es puguin extreure les taules amb totes les configuracions creades, i desprès, amb un selector d'idoneïtat, construir una combinació de resultats òptima.

No sempre s'aconsegueix l'extracció perfecta, però pot ser un bon inici


Si tens taules que no s'extrauen bé amb cap de les configuracions, pots posar-te en contacte amb mi per a veure si es pot afegir una nova configuració que funcioni bé amb la teva taula.

image
image

La nova versió de la llibreria apareix amb l'intenció de millorar les extraccions de taules.


La millora proposada per a aquesta versió, és detectar les vores de les taules abans de fer cap processament amb els texts, i extreure els texts de cada cel.la coneixent a priori la seva ubicació.

Les vores s'extreuen aplicant correlacions básiques de línies perfectament horitzontals i verticals i, amb una mica de processament extra, es poden extreure les vores completes de les taules.

Un cop es tenen les vores, es genera un graf amb les connexions immediates entre vèrtex i, recorrent aquest graf es poden recuperar les àrees de les cel.les de les taules.


La llibreria torna una combinació ordenada de les taules i els pàrrafs que no són a cap taula, tractant de respectar l'ordre al layout del Pdf

El parsejador en teoría pot detectar layouts en una o diferents columnes, o una combinació particular, que el parsejador de pàrrafs inferirà amb una mica de sort.

Això hauria de passar sense intervenció extra a les invocacions, simplement fent anar els constructors per defecte.

Els altres constructors dels parsejadors prenen objectes de configuració amb molts paràmetres, així que si el parsejador no funciona perfectament amb el teu Pdf, és molt possible que pugui fer-lo "simplement" tunejant aquest objecte de configuració.

Àrdua tasca si no ets el programador de la llibreria, per la qual cosa m'ofereixo a intentar tunejar aquesta configuració en cas que la llibreria no funcioni del tot bé amb el teu Pdf. (frojasg1@hotmail.com)

Descàrregues