Comment extraire des données d'un fichier PDF tout en gardant une trace de sa structure?


Mon objectif est d'extraire le texte et les images d'un fichier PDF tout en analysant sa structure. La portée de l'analyse de la structure n'est pas exhaustive; je dois seulement pouvoir identifier les titres et les paragraphes.

J'ai essayé quelques choses différentes, mais je ne suis pas allé très loin dans aucune d'entre elles:

  • Convertir un PDF en texte. Cela ne fonctionne pas pour moi car je perds des images et la structure du document.
  • Convertir PDF en HTML. J'ai trouvé quelques outils qui m'ont aidé avec cela, et le meilleur jusqu'à présent est pdftohtml. L'outil est vraiment une bonne présentation, mais je n'ai pas pu analyser avec succès le HTML.
  • Convertir PDF en XML. Même que ci-dessus.

Quelqu'un a des suggestions sur la façon de résoudre ce problème?

Author: Marcel, 2009-06-02

5 answers

Il n'y a essentiellement pas de solution de découpage-collage facile car PDF n'est pas vraiment très intéressé par la structure. Il y a beaucoup d'autres réponses sur ce site qui vous diront les choses beaucoup plus en détail, mais celle-ci devrait vous donner les points principaux:

Si l'identification de la structure du texte dans les documents PDF est si difficile, comment les lecteurs PDF le font - ils si bien?

Si vous voulez le faire dans PDF lui-même (où vous auriez la majorité du contrôle sur le processus), vous aurez pour parcourir tout le texte des pages et identifier les en-têtes en regardant leurs propriétés de texte (polices utilisées, taille par rapport à l'autre texte de la page, etc...).

En plus de cela, vous devrez également identifier les paragraphes en regardant le positionnement des fragments de texte, les espaces blancs sur la page, la proximité de certaines lettres, mots et lignes... PDF en soi n'a même pas de concept pour un "mot", encore moins de" lignes "ou de"paragraphes".

Pour compliquer encore plus les choses, la façon dont le texte est dessiné sur la page (et donc l'ordre dans lequel il apparaît dans le fichier PDF lui-même) ne doit même pas être l'ordre de lecture approprié (ou ce que nous, les humains, considérerions comme un ordre de lecture approprié).

 9
Author: David van Driessche, 2017-05-23 10:30:49

Sauf si son contenu est marqué, PDF n'a pas de structure.... Vous devez "deviner" ce que font les différents outils. Il y a un bon article de blog expliquant les problèmes à http://blog.idrsolutions.com/2010/09/the-easy-way-to-discover-if-a-pdf-file-contains-structured-content/

 1
Author: mark stephens, 2013-01-12 11:30:54

Vous pouvez utiliser l'approche suivante comme ceci avec iTextSharp ou d'autres bibliothèques open source:

  • Lire le fichier PDF avec avec iTextSharp ou des outils open source similaires et collecter tous les objets de texte dans un tableau (ou convertir PDF en HTML en utilisant l'outil comme pdftohtml puis analyser HTML)
  • Triez tous les objets texte par coordonnées afin de les avoir tous ensemble
  • Puis parcourir les objets et vérifier la distance entre eux pour voir si 2 ou plus les objets peuvent être fusionnés en un seul paragraphe ou non

Ou vous pouvez utiliser l'outil commercial comme ByteScout PDF Extractor SDK {[5] } qui est capable de faire exactement ceci:

  • extraire le texte et les images avec l'analyse de la mise en page du texte
  • XML ou CSV où les objets texte sont fusionnés ou divisés en paragraphes dans une grille de mise en page virtuelle
  • accédez aux objets via une API spéciale qui permet d'adresser chaque objet via sa ligne et sa colonne" virtuelles" index sans tenir compte de la façon dont il est stocké dans le PDF d'origine.

Avertissement: je suis affilié à ByteScout

 1
Author: Eugene M, 2015-02-16 10:07:19

L'analyse PDF des en-têtes et de ses sous-contenus est vraiment très difficile (cela ne signifie pas que c'est impossible ) car le PDF est disponible dans différents formats. Mais j'ai récemment rencontré un outil nommé GROBID qui peut aider dans ce scénario. Je sais que ce n'est pas parfait, mais si nous fournissons une formation appropriée, cela peut atteindre nos objectifs.

Grobid disponible en opensource sur github.

Https://github.com/kermitt2/grobid

 0
Author: Vaibhav Panmand, 2018-03-19 10:13:25

Api iText: PdfReader pr=nouveau PdfReader("C:\test.pdf");

Références: PDFReader

 -4
Author: KIBOU Hassan, 2018-02-23 10:01:05