174 votes

Comment extraire du texte d'un PDF?

Quelqu'un peut-il recommander une bibliothèque/API pour extraire le texte et les images à partir d'un PDF? Nous devons être en mesure d'obtenir au texte qui est contenu dans les pré-connu régions du document, afin de l'API faudra nous donner des informations de position de chaque élément sur la page.

Nous aimerions que les données de sortie en xml ou json format. Nous sommes actuellement à la recherche à PdfTextStream qui semble assez bonne, mais j'aimerais entendre d'autres peuples des expériences et des suggestions.

Existe-il des solutions de rechange (commercial ou libre) pour l'extraction de texte à partir d'un fichier pdf par programmation?

133voto

user2176753 Points 6

On m'a donné un 400 page de fichier pdf avec une table de données que j'avais à l'importation - heureusement, pas d'images. Ghostscript fonctionné pour moi:

gswin64c -sDEVICE=txtwrite -o output.txt input.pdf

Le fichier de sortie a été divisé en pages avec des en-têtes, etc., mais il était alors facile d'écrire une application pour éliminer les lignes vides, etc, et à le sucer dans les 30 000 enregistrements. -dSIMPLE et -dCOMPLEX fait pas de difference dans ce cas.

38voto

131 Points 645

Un efficace outil de ligne de commande, open source, disponible à la fois linux et windows : tout simplement nommé pdftotext. Cet outil est une partie de la xpdf de la bibliothèque.

http://en.wikipedia.org/wiki/Pdftotext

32voto

Kurt Pfeifle Points 24491

Depuis aujourd'hui je le sais: la meilleure chose pour l'extraction de texte à partir de fichiers Pdf est TET, l'extraction de texte toolkit. TET est une partie de la PDFlib.com la famille de produits.

PDFlib.com est Thomas Merz. Dans le cas où vous ne reconnaissez pas son nom: Thomas Merz est l'auteur de "PostScript et PDF Bible".

TET de première incarnation est une bibliothèque. Que l'on peut probablement faire tout ce Budda006 voulait, y compris des informations de position au sujet de chaque élément sur la page. Oh, et il peut aussi extraire des images. Il recompose les images qui sont fragmentés en morceaux.

pdflib.com propose également une autre incarnation de cette technologie, le TET plugin pour Acrobat. Et la troisième incarnation est la PDFlib TET iFilter. C'est un outil autonome pour les postes de travail des utilisateurs. Ces deux sont gratuits (comme la bière) pour usage à des fins privées, à des fins non commerciales.

Et c'est vraiment puissant. Meilleur que celui d'Adobe extraction de texte. Il extrait du texte pour moi, là où d'autres outils (y compris Adobe) faire cracher des ordures.

Je viens de tester le bureau autonome de l'outil et de ce qu'ils disent sur leur page web est vrai. Il a une très bonne ligne de commande. Certains de mes "problèmes" PDF fichiers de test de l'outil manipulé à mon entière satisfaction.

Cette chose sera désormais ma recommandation pour chaque complexe et difficile PDF extraction de texte exigences.

TET est tout simplement génial. Il détecte les tables. À l'intérieur des tables, il identifie les cellules s'étendant sur plusieurs colonnes. Il identifie les lignes de la table et le contenu de chaque cellule du tableau séparément. Il traite très bien avec hyphenations: il élimine les traits d'union et restaure des mots complets. Il prend en charge non-ASCII langues (y compris CJK, l'arabe et l'hébreu). Lors de la rencontre des ligatures, il rétablit les caractères d'origine...

Lui donner un essai.

22voto

Jonathan Points 644

Pour python, il n'y a PDFMiner et pyPDF2. Pour plus d'information, voir le module Python pour convertir PDF en texte.

12voto

user2070775 Points 523

Voici ma suggestion. Si vous voulez extraire le texte d'un PDF, vous pouvez importer le fichier pdf dans Google Docs, puis l'exporter vers un format plus convivial comme .html, .odf, .rtf, .txt, etc). Tout cela en utilisant le Lecteur de l'API. Il est gratuit* et robuste. Jetez un oeil à:

https://developers.google.com/drive/v2/reference/files/insert https://developers.google.com/drive/v2/reference/files/get

Parce que c'est une API rest, il est compatible avec TOUS les langages de programmation. Les liens que j'ai posté aboove avoir des exemples de travail pour de nombreuses langues, y compris: Java, .NET, Python, PHP, Ruby, et d'autres.

J'espère que cela aide.

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