web-dev-qa-db-fra.com

Structure d'un PDF fichier?

Pour un petit projet, je dois analyser des fichiers pdf et en prendre une partie spécifique (une simple chaîne de caractères). Pour ce faire, j'aimerais utiliser python et j'ai trouvé plusieurs bibliothèques capables de faire ce que je veux à certains égards.

Mais maintenant, après quelques recherches, je me demande quelle est la structure réelle d’un fichier pdf. Quelqu'un sait-il s’il existe une spécification ou des explications ailleurs en ligne? J'ai trouvé un lien sur Adobe mais il semble que ce soit un lien mort :(

57
Valentin Jacquemin

Voici un lien vers la documentation de référence d'Adobe

http://www.Adobe.com/devnet/pdf/pdf_reference.html

Vous devez savoir cependant que PDF ne concerne que la présentation, pas la structure. L'analyse ne viendra pas facilement.

38
minty

Lorsque j'ai commencé à travailler avec PDF, j’ai trouvé la référence PDF très difficile à parcourir . Cela pourrait vous aider à savoir que la présentation de la structure du fichier se trouve dans la syntaxe appeler la structure de document est la structure d'objet et non la structure de fichier. Cela se trouve également dans la syntaxe. La description des opérateurs est masquée dans l’Annexe A - très utile pour comprendre ce qui se passe dans les flux de contenu. Si vous avez déjà la peine de travailler avec des espaces colorimétriques, vous le trouverez caché dans Graphics! Espérons que ces indications vous aideront à trouver des choses plus rapidement que moi.

Si vous utilisez Windows, pdftron CosEdit vous permet de parcourir la structure de l’objet pour la comprendre. Une démo gratuite vous permet d’examiner le fichier sans le sauvegarder.

22
danio

J'ai trouvé le GNU Introduction à PDF utile pour comprendre la structure. Il comprend un fichier exemple PDF facilement lisible qu’ils décrivent en détail.

Autres liens utiles:

20
Jeff Moser

Voici le brut référence de PDF 1.7 , et voici un article décrivant la structure d'un fichier PDF . Si vous utilisez Vim, le plugin pdftk est un bon moyen d’explorer le document sous une forme légèrement moins crue, et l’utilitaire pdftk lui-même (ainsi que sa source GPL) pour taquiner des documents à part.

10
jmah

J'essaie de faire à peu près la même chose. La référence PDF est un document très difficile à lire. Ce tutoriel est un meilleur départ, je pense.

7
Noran

Cela peut aider à éclaircir un peu: (À partir de la page 11 de PDF32000.book)

La syntaxe PDF est mieux comprise en la considérant en quatre parties, comme le montre la figure 1:

• Objets. Un document PDF est une structure de données composée d'un petit ensemble de types de base d'objets de données . La sous-clause 7.2, "Conventions lexicales", décrit le jeu de caractères utilisé pour écrire des objets et autres éléments syntaxiques. Le sous-paragraphe 7.3, "Objets", décrit la syntaxe et les propriétés essentielles des objets . Le sous-paragraphe 7.3.8, "Objets de flux", fournit des détails complets sur le type de données le plus complexe, le flux objet.

• Structure de fichier. La structure de fichier PDF détermine la manière dont les objets sont stockés dans un fichier PDF, comment ils sont consultés et comment ils sont mis à jour. Cette structure est indépendante de la sémantique des objets. Sous- La clause 7.5, "Structure de fichier", décrit la structure du fichier. Le sous-paragraphe 7.6, "Cryptage", décrit un fichier de niveau mécanisme permettant de protéger le contenu d’un document contre tout accès non autorisé.

• Structure du document. La structure de document PDF spécifie comment les types d'objet de base sont utilisés pour représentent les composants d'un document PDF: pages, polices, annotations, etc. Sous-clause 7.7, "Structure du document" décrit la structure générale du document; les clauses ultérieures portent sur le détail sémantique des composants.

• Flux de contenu. Un flux de contenu PDF contient une séquence d'instructions décrivant l'apparence de une page ou une autre entité graphique. Ces instructions, bien que représentées également en tant qu’objets, sont conceptuelles distincts des objets représentant la structure du document et décrits séparément. Sous-clause 7.8, "Flux de contenu et ressources", décrit les flux de contenu PDF et leurs ressources associées.

On dirait que la navigation dans un fichier PDF nécessitera un peu plus qu'un simple effort.

6
Josh Albert
3
Peter Teoh

Si vous souhaitez analyser PDF à l'aide de Python, veuillez consulter PDFMINER . C'est la meilleure bibliothèque pour analyser les fichiers PDF jusqu'à la date.

3
codingscientist

Extraire le texte de PDF est un problème difficile à résoudre car PDF a une telle structure orientée mise en page. Vous pouvez voir les docs et le code source de ma tentative à peine réussie sur CPAN (mon implémentation est en Perl). La structure de données PDF est très chouette et bien conçue, mais il est plus facile d’écrire que de la lire.

2
Chris Dolan

Une façon d'obtenir des indices consiste à créer un fichier PDF consistant en une page vierge. J'ai CutePDF Writer sur mon ordinateur et j'ai créé un document Wordpad vierge d'une page. Imprimé dans un fichier .pdf, puis ouvert le fichier .pdf à l'aide du Bloc-notes.

Ensuite, utilisez une copie de ce fichier et éliminez les lignes ou les blocs de texte pouvant vous intéresser, puis rechargez-le dans Acrobat Reader. Vous seriez surpris du peu d’informations nécessaires pour créer un document PDF d’une page.

J'essaie de créer une feuille de calcul pour créer un formulaire PDF à partir de code.

2
Daniel Kim

Vous avez besoin du manuel de référence PDF pour commencer à lire sur les détails et la structure des fichiers PDF. Je suggère de commencer avec la version 1.7.

Sur Windows, j’utilisais un outil gratuit PDF Analyzer pour voir la structure interne des fichiers PDF . Cela vous aidera à mieux comprendre le manuel de référence.

 enter image description here

0
juFo

Pour extraire du texte d'un fichier PDF, essayez ceci sur une machine Linux, BSD, etc. ou utilisez Cygwin sous Windows:

pdfinfo -layout some_pdf_file.pdf

Un fichier texte brut nommé some_pdf_file.txt est créé. Plus la disposition du fichier PDF est simple, plus la sortie du fichier .txt sera simple.

Les caractères hexadécimaux sont fréquemment présents dans la sortie du fichier .txt et paraîtront étranges dans les éditeurs de texte. Ces caractères hexadécimaux représentent généralement des guillemets simples et doubles bouclés, des puces, des traits d'union, etc. dans le fichier PDF.

Pour voir le contexte dans lequel les caractères hexadécimaux apparaissent, exécutez cette commande grep et conservez l'original PDF pour voir quel caractère les codes représentent dans le fichier PDF:

grep -a --color=always "\\\\[0-9][0-9][0-9]" some_pdf_file.txt

Cela fournira une liste unique des différents codes octaux dans le document:

grep -ao "\\\\[0-9][0-9][0-9]" some_pdf_file.txt|sort|uniq

Pour convertir ces caractères hexadécimaux en ASCII équivalents, une combinaison de grep, sed et bc peut être utilisée, je vais poster la procédure pour le faire bientôt.

0
keithchristian