web-dev-qa-db-fra.com

Extraction du contenu d'un tableau à partir d'une collection de fichiers PDF

J'ai une pile de PDF - potentiellement des centaines ou des milliers. Ils ne sont pas tous formatés de la même manière, mais chacun d'entre eux PEUT avoir un ou plusieurs tableaux avec des informations intéressantes que j'aimerais collecter dans une base de données distincte.

Bien sûr, je sais que je dois écrire quelque chose pour ce faire. Perl est une option pour moi - ou peut-être Java. Je ne me soucie pas vraiment de la langue tant qu'elle est gratuite (ou bon marché avec une période d'essai gratuite pour s'assurer qu'elle convient à mes besoins).

Je regarde CAM :: Parse (en utilisant Perl fraise), mais je ne sais pas comment l'utiliser pour localiser et extraire des tables des fichiers. Je suppose que j'ai une préférence pour Perl, mais je veux vraiment quelque chose qui fonctionne de manière fiable et avec lequel il est relativement facile de faire des manipulations de cordes.

Quelle est la bonne approche pour quelque chose comme ça? Je suis à la case départ, donc si Java (ou python etc.) ont de meilleurs crochets, c'est le bon moment pour en savoir plus). bon; le code de démarrage serait fortement préféré.

26
elbillaf
  1. Le format PDF depuis sa création (il y a plus de 20 ans) = n'a jamais été conçu pour être l'hôte de données extractibles et structurées de manière significative.

  2. Son objectif était d'être une représentation visuelle fiable du texte, des images et des diagrammes dans un document - une sorte de papier numérique (qui serait également transféré de manière fiable sur du papier réel via l'impression). Ce n'est que plus tard dans son développement que de nouvelles fonctionnalités ont été ajoutées, ce qui devrait aider à extraire à nouveau les données (Google pour PDF balisé).

  3. Pour obtenir des exemples de problèmes qui se posent lors du grattage de données dans des tableaux de PDF, consultez cet article:

  4. En contradiction avec mon point '1.' ci-dessus, maintenant je dis ceci: pour une étonnante famille d'outils qui s'améliore de semaine en semaine pour extraire des données tabulaires à partir de PDF (sauf s'il s'agit de pages numérisées), voir ces liens:

Alors: allez chercher Tabula. Si des outils peuvent faire ce que vous voulez, Tabula est actuellement parmi les meilleurs pour le travail!


Mise à jour

J'ai récemment créé un ASCiinema screencast démontrant l'utilisation de l'interface de ligne de commande Tabula pour extraire une grande table d'un PDF en CSV:

asciicast

(Cliquez sur l'image ci-dessus pour le voir fonctionner. S'il tourne trop vite pour que vous puissiez lire tout le texte, utilisez le bouton "Pause" (|| - symbole).)

Il est hébergé ici:

38
Kurt Pfeifle