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 :(

8voto

Vadimo Points 388

Il existe également une autre option. Adobe Acrobat Pro est également capable d'afficher l'arborescence interne du PDF.

  1. Ouvrir Preflight
  2. Allez dans Options (coin supérieur droit)
  3. Structure interne du PDF

En outre, Adobe Acrobat Pro peut également afficher la structure interne des polices du document dans le PDF. La plupart des autres "visionneurs d'arborescence PDF" n'ont pas cette possibilité.

enter image description here

3 votes

C'est ce que décrit @mark-stephens dans la réponse acceptée.

6 votes

La réponse de @mark-stephens ne fait que renvoyer à un article de blog qui pourrait disparaître à l'avenir (et qui est déconseillé sur SO). Celle de vadimo fournit en fait la réponse.

5voto

Kaleb Pederson Points 22428

J'ai utilisé PDFBox avec un bon succès. Voici un exemple de ce à quoi ressemble le code (à partir de la version 0.7.2), qui provient probablement d'un des exemples fournis :

// load the document
System.out.println("Reading document: " + filename);
PDDocument doc = null;                                                                                                                                                                                                          
doc = PDDocument.load(filename);

// look at all the document information
PDDocumentInformation info = doc.getDocumentInformation();
COSDictionary dict = info.getDictionary();
List l = dict.keyList();
for (Object o : l) {
    //System.out.println(o.toString() + " " + dict.getString(o));
    System.out.println(o.toString());
}

// look at the document catalog
PDDocumentCatalog cat = doc.getDocumentCatalog();
System.out.println("Catalog:" + cat);

List<PDPage> lp = cat.getAllPages();
System.out.println("# Pages: " + lp.size());
PDPage page = lp.get(4);
System.out.println("Page: " + page);
System.out.println("\tCropBox: " + page.getCropBox());
System.out.println("\tMediaBox: " + page.getMediaBox());
System.out.println("\tResources: " + page.getResources());
System.out.println("\tRotation: " + page.getRotation());
System.out.println("\tArtBox: " + page.getArtBox());
System.out.println("\tBleedBox: " + page.getBleedBox());
System.out.println("\tContents: " + page.getContents());
System.out.println("\tTrimBox: " + page.getTrimBox());
List<PDAnnotation> la = page.getAnnotations();
System.out.println("\t# Annotations: " + la.size());

4voto

Dwight Kelly Points 711

La visionneuse d'objets d'Acrobat est bonne mais Windjack Solution propose un plugin pour Acrobat appelé PDF Canopener qui permet une meilleure inspection avec une pipette pour sélectionner les objets sur la page. Il permet également d'apporter des modifications au PDF.

https://www.windjack.com/product/pdfcanopener/

1voto

W.P. McNeill Points 1334

Si vous souhaitez travailler de manière programmatique à partir de Python, pdfminer est une bonne option. Il vous permet de travailler avec la structure PDF en mémoire comme une hiérarchie d'objets ou de la sérialiser en XML.

-8voto

Nifras Ismail Points 6

Je vous suggère Foxit PDF Reader qui est très utile pour effectuer des travaux importants d'édition de texte sur un fichier pdf.

8 votes

Je n'ai pas trouvé de moyen dans Foxit Reader de visualiser la structure interne d'un PDF comme le fait PDF Inspector (mentionné dans la question).

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