85 votes

Structure d'un fichier PDF ?

Pour un petit projet, je dois analyser des fichiers pdf et en prendre une partie spécifique (une simple chaîne de caractères). J'aimerais utiliser python pour faire cela et j'ai trouvé plusieurs bibliothèques qui sont capables de faire ce que je veux d'une certaine manière.

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 en ligne ? J'ai trouvé un lien sur adobe mais il semble que ce soit un lien mort :(

2voto

Daniel Kim Points 1

Une façon d'obtenir des indices est de créer un fichier PDF constitué d'une page blanche. J'ai CutePDF Writer sur mon ordinateur, et j'ai créé un document Wordpad vierge d'une page. J'ai imprimé un fichier .pdf, puis j'ai ouvert le fichier .pdf à l'aide de Notepad.

Ensuite, utilisez une copie de ce fichier et éliminez les lignes ou les blocs de texte qui pourraient présenter un intérêt, puis rechargez dans Acrobat Reader. Vous serez surpris de constater le peu d'informations nécessaires pour créer un document PDF d'une page qui fonctionne.

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

0voto

keithchristian Points 5

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

pdfinfo -layout some_pdf_file.pdf

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

Les caractères hexadécimaux sont souvent présents dans le fichier .txt et ont une apparence étrange dans les éditeurs de texte. Ces caractères hexadécimaux représentent généralement des guillemets simples et doubles, des puces, des traits d'union, etc. dans le PDF.

Pour voir le contexte dans lequel les caractères hexadécimaux apparaissent, exécutez cette commande grep, et gardez le PDF original à portée de main pour voir quel caractère les codes représentent dans le PDF :

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

Vous obtiendrez ainsi une liste unique des différents codes octaux du document :

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

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

-1voto

Tod Points 1

Si le fichier est crypté, vous n'avez aucune chance. J'ai écrit un rédacteur de rapports PDF et, étant donné que je savais ce qu'il contenait, je pouvais écrire quelque chose pour le récupérer, mais je n'ai utilisé qu'un sous-ensemble de tout ce qui pouvait être fait. Ce sera amusant.

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