138 votes

Comment puis-je inspecter visuellement un PDF ? Existe-t-il des outils qui fonctionnent sous Windows ?

Comment puis-je inspecter les fichiers PDF, de préférence avec un outil ?

Cas d'utilisation : J'essaie de générer par programme des fichiers PDF (en utilisant iText). J'ai des difficultés à obtenir certaines mises en page, mais j'ai des fichiers PDF avec du texte mis en page comme je le souhaite (généré à partir de Word). J'aimerais faire de la rétro-ingénierie pour savoir comment ils procèdent.

PDF Inspecteur semble être bon, mais je cherche quelque chose pour Windows.

0 votes

PDF Inspector est basé sur Java, donc multiplateforme.

2 votes

Mais il ne semble pas fonctionner sous Windows. Le jar ne fait rien quand on clique dessus. Lorsqu'il est appelé en ligne de commande, j'obtiens no main manifest attribute, in PDF Document Inspector.jar

2 votes

@david.perez c'est basé sur java mais enveloppé par apple donc c'est une sorte de distribution réservée à apple. Il y a le bocal "PDF Document Inspector.app/Contents/Resources/Java/PDF Document Inspector.jar" mais il ne peut pas être démarré avec java -jar "PDF Document Inspector.jar". Il y a aussi beaucoup d'inclusions com.apple.cocoa.* qui sont spécifiques à la plateforme :(

134voto

Kurt Pfeifle Points 24491

Outre les outils basés sur l'interface graphique mentionnés dans les autres réponses, il existe quelques outils en ligne de commande qui peuvent transformer le code source du PDF original en une représentation différente qui vous permet d'inspecter le fichier (maintenant modifié) avec un éditeur de texte. Tous les outils ci-dessous fonctionnent sous Linux, Mac OS X, d'autres systèmes Unix ou Windows.

qpdf (mon préféré)

Utilisez qpdf pour décompresser (la plupart) des flux d'objets et aussi disséquer ObjStm en objets indirects individuels :

qpdf --qdf --object-streams=disable orig.pdf uncompressed-qpdf.pdf

qpdf se décrit comme un outil qui fait "transformations structurelles et préservant le contenu des fichiers PDF". .

Ensuite, il suffit d'ouvrir + inspecter le uncompressed-qpdf.pdf dans votre éditeur de texte préféré. La plupart des octets précédemment compressés (et donc binaires) seront désormais du texte brut.

mutool

Il y a aussi le mutool qui est fourni avec l'application MuPDF Le visualiseur PDF (qui est un produit jumeau de Ghostscript, fabriqué par la même société), Artifex ). La commande suivante décompresse également les flux et les rend plus faciles à inspecter avec un éditeur de texte :

mutool clean -d orig.pdf uncompressed-mutool.pdf

podofouncompress

PoDoFo est une bibliothèque FreeSoftware/OpenSource permettant de travailler avec le format PDF et comprenant quelques outils en ligne de commande, notamment podofouncompress . Utilisez-le comme ceci pour décompresser les flux PDF :

podofouncompress orig.pdf uncompressed-podofo.pdf

peepdf.py

PeePDF est un outil basé sur Python qui vous aide à explorer les fichiers PDF. Son but initial était la recherche et la dissection de logiciels malveillants basés sur le format PDF, mais je le trouve également utile pour étudier la structure de fichiers PDF totalement bénins.

Il peut être utilisé de manière interactive pour "parcourir" les objets et les flux contenus dans un PDF.

Je ne donnerai pas d'exemple d'utilisation ici, mais seulement un lien vers sa documentation :

pdfid.py y pdf-parser.py

pdfid.py y pdf-parser.py sont deux Outils PDF de Didier Stevens écrit en Python.

Ils ont également pour mission d'aider à explorer malveillant PDFs -- mais je trouve aussi utile d'analyser la structure et le contenu de fichiers PDF bénins.

Voici un exemple de la manière dont j'extrairais le flux non compressé de l'objet PDF n° 5 dans un fichier *.dump :

pdf-parser.py -o 5 -f -d obj5.dump my.pdf

Notes finales

  1. Veuillez noter que certaines parties binaires contenues dans un PDF ne sont pas nécessairement incompressibles (ou décodables en code ASCII lisible par l'homme), car elles sont intégrées et utilisées dans leur format natif à l'intérieur des PDF. Ces parties de PDF sont des images JPEG, des polices ou des profils de couleur ICC.

  2. Si vous comparez les outils ci-dessus et les exemples en ligne de commande donnés, vous découvrirez qu'ils font PAS produisent tous des résultats identiques. L'effort de comparaison de leurs différences peut en soi vous aider à mieux comprendre la nature de la syntaxe et du format de fichier PDF.

69voto

gkcn Points 128

J'utilise iText RUPS (Lecture et mise à jour de la syntaxe PDF) sous Linux. Comme il est écrit en Java, il fonctionne aussi sous Windows. Vous pouvez parcourir tous les objets du fichier PDF dans une structure arborescente. Il peut également décoder les flux codés Flate à la volée pour faciliter l'inspection.

Voici une capture d'écran :

iText RUPS screenshot

9 votes

java -jar itext-rups-5.5.6.jar -> Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/itextpdf/text/Version - Comment es-tu censé diriger ce truc ? Edit : Figured it out. Vous ne devez pas télécharger le fichier par défaut proposé par SourceForge, vous devez télécharger le .jar qui inclut les dépendances.

2 votes

@Zero3 vient de tomber sur la même chose. Merci pour votre commentaire.

0 votes

@Zero3 : Tu devrais ne télécharge plus du tout depuis SF ...

24voto

mark stephens Points 2923

Adobe Acrobat dispose d'un mode très sympa mais plutôt bien caché permettant d'inspecter les fichiers PDF. J'ai écrit un article de blog pour l'expliquer à https://blog.idrsolutions.com/2009/04/viewing-pdf-objects/

0 votes

Cela semble nécessiter un plugin ; en tout cas, il n'est pas disponible dans Acrobat Reader 9.5.5 sous Linux.

3 votes

@AdamSpiers, la boîte de dialogue de contrôle en amont est une fonctionnalité d'Adobe Acrobat, pas d'Adobe Reader.

0 votes

... et Acrobat ( anciennement Acrobat Exchange ) n'est pas disponible pour Linux :-/

9voto

Pierre Points 559

PDFXplorer de O2 Solutions fait un travail remarquable en affichant les éléments internes si vous êtes sur une machine Windows.

http://www.o2sol.com/pdfxplorer/overview.htm

(Bannière gratuite et distrayante en bas de page).

9voto

juFo Points 3779

Si vous êtes sous Windows, Analyseur de PDF est similaire à PDFXplorer mais il a plus d'options. Il est également gratuit après une seule inscription.

enter image description here

0 votes

Pour moi, PDFXplorer fonctionne beaucoup mieux, car il va plus loin dans le contenu.

0 votes

@Daniel comment veux-tu dire, dans l'arbre ? J'aime le fait que PDFAnalyzer puisse afficher du texte et peut vider des images.

0 votes

J'ai comparé PDFxplorer et PDF Analyzer et PDFXplorer me permet de creuser un peu plus profondément dans les structures internes des flux que PDF Analyzer.

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