Guides Données et encodage

Comment fonctionnent les fichiers PDF

La structure d'un PDF (en-tête, objets, table de références croisées, fin de fichier), un fichier minimal complet dont les décalages ont été vérifiés avec pdfinfo, comment pages et texte sont stockés et comment l'édition laisse des traces.

Dernière vérification :

AdSense Placeholder
Slot: header_reference_page
Sur cette page

Un PDF est un conteneur d'objets numérotés, d'une table qui indique où commence chacun et d'une fin de fichier (trailer) qui dit par où commencer la lecture. Les pages sont des objets, les polices sont des objets, et les instructions de dessin de chaque page forment un flux d'opérateurs. Travaillez sur les fichiers avec le rotateur de PDF, l'éditeur de métadonnées PDF et le convertisseur PDF vers texte ; le terme est défini dans PDF (Portable Document Format).

Les quatre parties d'un fichier

  • En-tête : %PDF-1.4 indique la version.
  • Corps : objets numérotés comme 3 0 obj ... endobj (numéro d'objet, génération, puis contenu).
  • Table de références croisées (xref) : pour chaque objet, le décalage en octets où il commence, afin qu'un lecteur y saute directement.
  • Fin de fichier (trailer) : désigne l'objet racine (/Root) et se termine par startxref, le décalage de la table, puis %%EOF.

Un PDF minimal complet

Ce fichier d'une page est complet. Ses décalages sont réels : pdfinfo le lit comme une page de 200 × 100 points et pdftotext en extrait « Hello PDF ».

%PDF-1.4
1 0 obj
<< /Type /Catalog /Pages 2 0 R >>
endobj
2 0 obj
<< /Type /Pages /Kids [3 0 R] /Count 1 >>
endobj
3 0 obj
<< /Type /Page /Parent 2 0 R /MediaBox [0 0 200 100] /Contents 4 0 R /Resources << /Font << /F1 5 0 R >> >> >>
endobj
4 0 obj
<< /Length 39 >>
stream
BT /F1 18 Tf 20 50 Td (Hello PDF) Tj ET
endstream
endobj
5 0 obj
<< /Type /Font /Subtype /Type1 /BaseFont /Helvetica >>
endobj
xref
0 6
0000000000 65535 f 
0000000009 00000 n 
0000000058 00000 n 
0000000115 00000 n 
0000000241 00000 n 
0000000330 00000 n 
trailer
<< /Size 6 /Root 1 0 R >>
startxref
400
%%EOF

Comment les pièces s'assemblent

  • Le catalogue /Root pointe vers l'arbre des pages (/Pages), qui énumère les pages (/Kids).
  • Chaque page a une /MediaBox (taille en points ; 72 points = 1 pouce) et /Contents, un flux comme BT ... ET qui choisit une police, se déplace à une position et affiche du texte.
  • Les ressources comme les polices sont référencées par nom (/F1) et définies ailleurs.
  • Les vrais fichiers compressent les flux (/Filter /FlateDecode) et regroupent de nombreux objets dans des flux d'objets pour gagner de la place.
  • Les métadonnées résident dans le dictionnaire /Info et, en option, dans XMP ; consultez-les et modifiez-les avec l'éditeur de métadonnées PDF.

Pourquoi c'est important

  • Les modifications peuvent être enregistrées comme une mise à jour incrémentielle : de nouveaux objets et une nouvelle xref sont ajoutés, et les anciens restent dans le fichier. Un contenu supprimé ou caviardé peut rester récupérable.
  • L'extraction du texte dépend de la façon dont une police associe glyphes et caractères ; les pages numérisées ne contiennent que des images et demandent de la reconnaissance de caractères (OCR).
  • Une xref corrompue peut souvent être reconstruite en cherchant les marqueurs obj, ce que font de nombreux lecteurs pour réparer des fichiers abîmés.
  • Pour vérifier qu'un document ne cache pas de modifications, voyez Comment vérifier qu'un PDF ne contient pas de modifications cachées.

Essayez ces outils

Voir aussi

Questions fréquemment posées

Un PDF stocke des instructions de dessin positionnées, pas du texte qui s'écoule. Les mots sont placés glyphe par glyphe, sans paragraphes ; les éditeurs doivent donc reconstituer lignes et polices, et n'y parviennent souvent pas.

AdSense Placeholder
Slot: footer_leaderboard