Quelqu'un a-t-il de l'expérience en matière d'extraction de données à partir de fichiers PDF par programmation, en particulier de tableaux incorporés? Quels outils avez-vous utilisés? S'agit-il toujours d'un processus ponctuel en fonction du fichier ou existe-t-il des outils qui fonctionneront contre toutes sortes de fichiers?
Réponses
Trop de publicités?Pour un rapide (seul?)l'extraction de table(s) il est digne de vérifier Okularl'excellent Tableau de Sélection de l'Outil.
Ouvrir le fichier PDF, recherchez la table en question, activer le Tableau de l'Outil de Sélection avec Ctrl+5, dessinez un rectangle de la zone de joindre la table, et, enfin, de définir les divisions verticales et horizontales des cellules de la table (peut-être besoin de jouer un peu pour se faire une idée -- voir capture d'écran ci-dessous) en cliquant sur les bords. Voila! Copier et coller, par exemple, dans une feuille de calcul vide.
Ne sous-estimez pas la puissance de copier-coller. Une copie standard perdra la forme d'un tableau (plus précisément, il perd les séparateurs à la verticale) et n'est donc pas efficace. Le secret pour obtenir des données d'une table dans un fichier pdf à l'aide de copier et de coller pour copier les colonnes individuellement. Dans Adobe Acrobat, en maintenant la touche alt permet de le faire. Généralement, à l'horizontale diviseurs restera intacte sous la forme de retours à la ligne.
Si c'est juste un one-off, cette solution est souvent beaucoup plus facile et plus rapide que de la programmation (mais là encore, donc, est de retaper les données vous-même).
Je n'ai pas fait cela, mais il est probable que iTextPDF fonctionnerait. Je n'ai pas encore vu d'outil PDF plus complet, gratuit ou bon marché. Disponible en .NET et Java.
Il est disponible sous la GPL Affero.
Éditer: le produit a été renommé iTextPDF à partir de iTextSharp. Je ne l'ai pas utilisé depuis le changement de nom, mais je n'ai aucune raison de croire que ses fonctionnalités ont diminué.
Utilisez l'option -xml
de pdftohtml
, qui vous donnera un document XML contenant la position absolue de tous les extraits de texte. Examinez-la, en notant les positions des colonnes et en supprimant tout ce qui ne fait pas partie de la table. Ensuite, vous pouvez écrire un petit script qui consomme le XML, en regroupant ce qui doit être placé dans chaque cellule en utilisant les positions de colonne.