2013-04-02 1 views
1

J'essaye de convertir le pdf au dossier de csv. fichier pdf a des données au format tabulaire avec la première ligne comme en-tête. J'ai atteint le niveau où je peux extraire le texte d'une cellule, comparer la ligne de base du texte dans la table et détecter la nouvelle ligne mais j'ai besoin de comparer les bordures de table pour détecter le début de la table. Je ne sais pas comment détecter et comparer les lignes en PDF. Quelqu'un peut-il m'aider?Comment faire pour détecter le début de la table dans itextSharp?

Merci !!!

Répondre

4

Comme vous l'avez vu (espérons-le), les PDF n'ont pas de concept de tables, seulement du texte placé à des endroits spécifiques et des lignes dessinées autour d'eux. Il n'y a pas de relation interne entre le texte et les lignes. C'est très important de comprendre. Sachant cela, si toutes les cellules ont suffisamment de remplissage, vous pouvez rechercher des espaces entre les caractères qui sont assez grands tels que la largeur de 3 espaces ou plus. Si les cellules n'ont pas assez d'espacement, cela va malheureusement se rompre.

Vous pouvez également regarder chaque ligne dans le PDF et essayer de comprendre ce qui représente vos lignes "ressemblant à des tables". Voir this answer for how to walk every token on a page pour voir ce qui est dessiné.

+0

+1; Je suis d'accord sur la description générale. En ce qui concerne la manière d'inspecter le contenu de la page, je proposerais l'utilisation du paquet d'analyseur iText au lieu d'une inspection manuelle du contenu de la page. – mkl

+0

Existe-t-il un analyseur pour les formes/lignes dans iText? –

+0

Pas encore, mais les classes du paquet analyseur sont assez faciles à étendre pour fournir également des informations sur les chemins. Plus important, cependant, les classes de l'analyseur fournissent des informations assez précises sur les largeurs de texte et les positions aux RenderListeners. Pour récupérer manuellement les mêmes informations, il faudrait prendre en compte certains opérateurs possibles. – mkl

Questions connexes