Extraction de table PDF
J'ai (même) les données qui sont enregistrées en tant que fichier image GIF et en tant que fichier PDF et je veux l'analyser au format HTML ou XML. Les données sont en fait le menu de mon université et de la cafétéria. Cela signifie qu'il ya une nouvelle version du fichier qui doit être analysé chaque semaine!
En Général, les fichiers contiennent quelques-uns d'en-tête et pied de page de texte, ainsi que d'une table avec plein d'autres données entre les deux.
J'ai lu quelques posts sur stackoverflow et j'avais aussi commencé quelques tentatives pour analyser les données de la table en HTML/XML:
- PDFBox || iText (Java)
- Google Docs Importation
- PDF2HTML || PDF2Table
GIF
- Tesseract-OCR
J'ai obtenu le meilleur résultat de l'analyse du fichier PDF avec PDFBox, mais encore (comme le menu change chaque semaine), il n'est pas assez fiable. Le code HTML que je reçois comprend parfois plus, parfois moins "paragraphes" (<p>
), de sorte que je ne suis pas en mesure d'analyser les données precice assez.
C'est pourquoi je voudrais savoir si il y a une autre façon de faire?
source d'informationauteur Vilius
Vous devez vous connecter pour publier un commentaire.
Tabula est un bon début sur un JRuby interface web pour l'extraction d'un fichier CSV/TSV tables de l'arbitraire des fichiers Pdf.
J'ai mis en œuvre mes propres algorithme ( son nom est
traprange
) pour analyser des données tabulaires sous forme de fichiers pdf.Suivants sont des exemples de fichiers pdf et les résultats:
Visiter ma page du projet à traprange
ou mon article à traprange
Si vous êtes à la recherche pour extraire des données à partir des tables une fois par semaine et vous êtes sur Windows, nous vous invitons à vérifier ce freeware pdf utilitaire qui comprend table automatisée de détection et de table au format CSV, conversion XML: PDF Viewer utilitaire.
L'utilitaire est gratuit pour à la fois commerciales et non commerciales de l'utilisation pour les non-développeurs (et il y a l'autre version pour les développeurs qui souhaitent automatiser via l'API).
Disclaimer: je travaille pour ByteScout
J'ai essayé beaucoup de l'OCR et de texte au logiciel de convertisseur et même si je crois qu'une fois d'écrire le programme d'auto-conversion de PDF à texte comme l'Image est mieux comprise par la personne qui exécute la tâche.
J'avais aussi essayé d'utiliser Google et beaucoup d'autres en Ligne (environ 900 site web) et Hors ligne(environ 1000 logiciels) produits par des sociétés différentes. Si vous voulez extraire le texte à partir de n'importe quelle méthode comme le ROC ou le Texte d'un PDF, puis plus précise programme que j'ai trouvé est PDFTOHTML. Le taux d'exactitude de PDFTOHTML est d'environ 98% et en Ligne Google a environ 94% de précision. C'est un très bon logiciel qui vous fournissent également le bon format de texte c'est à dire gras, italique, etc du texte.
Sont les tables dans la même place à chaque fois? Si vous pouvez trouver les dimensions de chaque boîte, vous pouvez utiliser un outil pour diviser le fichier PDF en plusieurs documents, qui contiennent une case, après laquelle vous pouvez utiliser n'importe quel outil que vous voulez convertir chaque petit PDF à HTML (comme les outils mentionnés dans d'autres réponses). Hasard des recherches de Google tiré vers le haut PyPdfqui ressemblait il pourrait avoir quelques fonctions utiles.
Si vous n'êtes pas capable de coder en dur la taille de la boîte (ou vous voulez appliquer le problème à plusieurs menus dans différents formats), la méthode à moi (j'ai dit que évident, pas facile) serait détection de bord pour trouver l'emplacement de la bordure de la table, et ensuite appliquer le fractionnement j'ai parlé auparavant.
J'ai récemment rencontré un problème similaire.
Une autre solution que j'ai trouvé a été d'ouvrir un document PDF dans Adobe et de les exporter au format xml. Au moins avec mon PDF est-il conservé les informations de la table et ensuite, j'ai été en mesure de travailler par programmation avec XML pour générer des tableaux comme les fichiers excel, etc.
L'autre problème que j'ai rencontré était que Adobe ne vous permet d'exporter un fichier à la fois et j'ai eu beaucoup de fichiers. Heureusement, Adobe a également une fonction de fusion. J'ai fini par la fusion de tous les fichiers ensemble et ensuite les exporter sous la forme d'un seul gros fichier XML et de travailler avec ce fichier pour générer ce dont j'avais besoin.