34 votes

Extraire des tables à partir de fichiers PDF par programme?

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?

23voto

Jason S Points 58434

J'ai utilisé pdftotext (gratuit) de XPDF avec beaucoup de succès. Il a plusieurs options (y compris -raw et -layout ) selon que vous préférez conserver la géométrie approximative ou la sémantique.

15voto

Nikos Alexandris Points 207

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.

Defining horizontal and vertical lines using Okular's table selection tool

13voto

Brian Points 14040

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).

10voto

jcollum Points 10236

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é.

6voto

JKL Points 51

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X