Structure d'un fichier PDF?
Pour un petit projet que j'ai pour analyser des fichiers pdf et de prendre une partie d'entre eux (une simple chaîne de caractères). Je voudrais utiliser python pour le faire et j'ai trouvé plusieurs bibliothèques qui sont capables de faire ce que je veux, à certains égards.
Mais maintenant, après quelques recherches, je me demande quelle est la véritable structure d'un fichier pdf, personne ne sait si il y a un spec ou quelques explications en ligne n'importe où? J'ai trouvé un lien sur adobe, mais il semble que c'est un lien mort 🙁
Vous devez vous connecter pour publier un commentaire.
Voici un lien vers Adobe documents de référence
http://www.adobe.com/devnet/pdf/pdf_reference.html
Que tu saches que le format PDF est seulement au sujet de présentation, pas de structure. L'analyse ne sera pas facile.
J'ai trouvé le GNU Introduction au format PDF pour être utile dans la compréhension de la structure. Il comprend une forme aisément lisible exemple de fichier PDF qu'ils décrivent en détail.
Autres liens utiles:
Quand j'ai commencé à travailler avec des PDF, j'ai trouvé le PDF de référence très difficile à naviguer.
Il pourrait vous aider à savoir que la vue d'ensemble de la structure du fichier est trouvé dans la syntaxe, et de ce que Adobe appel de la structure du document est la structure de l'objet et non pas la structure du fichier. Qui se retrouve aussi dans la Syntaxe. La description des opérateurs est caché dans l'Annexe A - très utile pour la compréhension de ce qui se passe dans les flux de contenu. Si jamais vous avez la douleur de travailler avec des espaces de couleurs, vous trouverez que cachés dans les Images! Espérons que ces pointeurs vous aidera à trouver les choses plus rapidement que je l'ai fait.
Si vous utilisez windows, pdftron CosEdit vous permet de naviguer dans la structure de l'objet de la comprendre. Il y a une démo gratuite disponible qui vous permet d'examiner le dossier, mais pas l'enregistrer.
Voici les premières référence de PDF 1.7, et voici un article décrire la structure d'un document PDF fichier. Si vous utilisez Vim, le pdftk plugin est un bon moyen de découvrir le document dans un très-légèrement moins une forme brute, et le pdftk utilitaire lui-même (et sa source GPL) est un excellent moyen de taquiner les documents d'intervalle.
Je suis en train de faire à peu près la même chose. Le PDF de référence est très difficile à lire. Ce tutoriel est un bon début je pense.
Cela peut aider à jeter un peu de lumière:
(à partir de la page 11 de PDF32000.livre)
Ressemble à naviguer dans un fichier PDF va nécessiter un peu plus d'un passant effort.
Si Vous souhaitez analyser PDF à l'aide de Python, jetez un oeil à PDFMINER. C'est le meilleur de la bibliothèque pour analyser les fichiers PDF jusqu'à la date.
pdf2txt -t html -d -Y exact -o foo.html foo.pdf
. C'est un très bon outil pour obtenir un coup d'oeil à la structure d'une page PDF. Je travaille aussi sur des améliorations pour elle, pour notre propre projet.Didier disposer d'un outil pour analyser le PDF:
http://didierstevens.com/files/software/pdf-parser_V0_4_3.zip
ou ici:
http://blog.didierstevens.com/programs/pdf-tools/ qui énumérait plusieurs pdf-outils d'analyse.
Un autre outil est ici:
http://mshahzadlatif.wordpress.com/2011/09/28/view-pdf-structure-using-adobe-acrobat-or-a-free-tool-called-pdfxplorer/
L'extraction de texte à partir d'un fichier PDF est un problème difficile parce que le format PDF est une telle mise en page orientée vers la structure. Vous pouvez voir le docs et le code source de ma peine tentative réussie sur CPAN (mon application est en Perl). Le PDF de la structure de données est très cool et bien conçu, mais il est plus facile à écrire qu'à lire.
Une manière d'obtenir quelques indices est de créer un fichier PDF comprenant une page vierge. J'ai CutePDF Writer sur mon ordinateur, et en fait un document Wordpad d'une page. Imprimé sur une .fichier pdf, puis a ouvert la .fichier pdf en utilisant le bloc-notes.
Ensuite, utilisez une copie de ce fichier et d'éliminer des lignes ou des blocs de texte qui pourrait être d'intérêt, puis de recharger dans Acrobat Reader. Vous seriez surpris de voir combien peu d'information est nécessaire pour faire un travail d'une page du document PDF.
Je suis en train de faire une feuille de calcul pour créer un formulaire PDF à partir du code.
Vous avez besoin de l'PDF manuel de Référence pour démarrer la lecture sur les détails et la structure des fichiers PDF. Je suggère de commencer avec la version 1.7.
Sur windows, j'ai utilisé un outil gratuit PDF Analyseur de voir la structure interne des fichiers PDF.
Cela aidera dans votre compréhension lors de la lecture du manuel de référence.
(Je suis affilié avec PDF de l'Analyseur, pas l'intention de promouvoir l')
Pour extraire du texte à partir d'un PDF, essayez ceci sur Linux, BSD, etc. de la machine ou de l'utilisation de Cygwin si sur Windows:
Un fichier texte nommé
some_pdf_file.txt
est créé. Le plus simple, le fichier PDF de la présentation, de la plus simple à la .txt fichier de sortie sera.Caractères hexadécimaux sont souvent présents dans le .txt fichier de sortie et un aspect étrange dans les éditeurs de texte. Ces caractères hexadécimaux représentent généralement bouclé les guillemets simples et doubles, bullet points, traits d'union, etc. dans le fichier PDF.
Pour voir le contexte où les caractères hexadécimaux apparaît, exécutez cette commande grep, et de conserver l'original de PDF pratique pour voir quel personnage les codes représentent dans le PDF:
Cela fournira une liste unique des différents codes octaux dans le document:
De convertir ces caractères hexadécimaux ASCII équivalents, une combinaison de grep, sed, et de la colombie-britannique peuvent être utilisés, je vais poster la procédure pour le faire bientôt.