Mon objectif est d'extraire le texte et les images d'un fichier PDF tout en analysant sa structure. Les possibilités d'analyser la structure ne sont pas exhaustives; il me suffit de pouvoir identifier les en-têtes et les paragraphes.
J'ai essayé plusieurs choses différentes, mais je ne suis pas allé très loin dans aucune d'entre elles:
Quelqu'un a-t-il des suggestions sur la façon de résoudre ce problème?
Il n'y a essentiellement pas de solution simple de copier-coller parce que 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 des choses beaucoup plus en détail, mais celui-ci devrait vous donner les points principaux:
Si vous voulez le faire dans PDF lui-même (où vous auriez la majorité du contrôle sur le processus), vous devrez parcourir tout le texte des pages et identifier les en-têtes en regardant leur propriétés du 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 par lui-même) n'a même pas de concept pour un "mot", encore moins des "lignes" ou des "paragraphes".
Pour compliquer encore 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) n'a même pas besoin d'être le bon ordre de lecture ( ou ce que nous, les humains, considérons comme un bon ordre de lecture).
Vous pouvez utiliser l'approche suivante comme celle-ci avec iTextSharp ou d'autres bibliothèques open source:
Ou vous pouvez utiliser l'outil commercial comme ByteScout PDF Extractor SDK qui est capable de faire exactement cela:
Avertissement: je suis affilié à ByteScout
L'analyse des PDF pour les en-têtes et leurs sous-contenus est vraiment très difficile (cela ne signifie pas que c'est impossible) car PDF est disponible en 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, il peut atteindre nos objectifs.
Grobid disponible en open source sur github.
Les fichiers PDF peuvent être analysés avec tabula-py ou tabula-Java.
J'ai fait un tutoriel complet sur la façon d'utiliser tabula-py sur cet article . Vous pouvez également tabuler dans un navigateur Web tant que vous avez installé Java.
À moins que ce ne soit du contenu marqué, PDF n'a pas de structure .... Vous devez le "deviner" ce que font les différents outils. Il y a un bon billet de blog expliquant les problèmes à http://blog.idrsolutions.com/2010/09/the-easy-way-to-discover-if-a-pdf-file-contains-structured-content/