Champs de métadonnées PDF, dates et ce qu’ils peuvent vous apprendre
Deux endroits où un PDF enregistre ses propriétés
Un PDF peut se décrire deux fois. L’ancien dictionnaire Info contient des clés courtes comme Title, Author, Creator, Producer, CreationDate et ModDate. Le paquet XMP, plus récent, est un bloc XML intégré au fichier, avec des propriétés comme dc:title, xmp:CreateDate et pdf:Producer. Les applications sont censées garder les deux synchronisés, mais les logiciels qui n’en modifient qu’un seul laissent le fichier en contradiction avec lui-même.
Le vérificateur lit le dictionnaire Info avec pdfinfo et cherche un paquet XMP dans les 2 premiers Mo du fichier. Lorsque les deux contiennent une valeur, le rapport en retient une selon le tableau ci-dessous. Un champ absent de la source retenue est repris de l’autre : un titre peut donc venir du dictionnaire Info alors que les dates viennent de XMP.
| Champ du rapport | Lu d’abord dans | Solution de repli |
|---|---|---|
| Titre | dc:title (XMP) |
Title (Info) |
| Auteur | dc:creator (XMP) |
Author (Info) |
| Sujet | dc:description (XMP) |
Subject (Info) |
| Mots-clés | pdf:Keywords, puis dc:subject |
Keywords (Info) |
| Créé | xmp:CreateDate |
CreationDate (Info) |
| Modifié | xmp:ModifyDate |
ModDate (Info) |
| Logiciel de création (section logiciel) | xmp:CreatorTool et pdf:Producer |
Creator et Producer (Info) |
| ID du document et ID d’instance | xmpMM:DocumentID, xmpMM:InstanceID |
Aucune ; vide sans XMP |
Décoder une date PDF
Les dates du dictionnaire Info suivent le modèle D:YYYYMMDDHHmmSSOHH'mm' : un préfixe D:, l’année, le mois, le jour, l’heure, la minute et la seconde, puis le décalage par rapport à UTC. O vaut +, - ou Z, et les apostrophes séparent les heures et les minutes du décalage. Tout ce qui suit l’année est facultatif : D:2026031514 est donc une date valide qui s’arrête à l’heure ; le vérificateur complète les minutes et les secondes manquantes par des zéros. Les dates XMP suivent plutôt la norme ISO 8601, par exemple 2026-02-14T16:45:10+02:00.
Exemple détaillé : D:20260315143022+01'00'
2026 = année, 03 = mars, 15 = jour 14:30:22 = heure locale au moment où le fichier a été écrit +01'00' = une heure d’avance sur UTC Même instant en UTC : 15 mars 2026, 13:30:22 Notre test l’a affichée sous la forme « March 15, 2026 at 1:30 PM », source info_dict.
Un rapport mesuré sur un fichier de test
Nous avons créé un fichier d’une page dont le dictionnaire Info contenait un titre, un auteur, les champs Creator et Producer tous deux réglés sur Microsoft® Word for Microsoft 365, une date de création D:20260315143022+01'00' et une date de modification D:20260317091544+01'00'. Voici les lignes pdfinfo analysées par le vérificateur, suivies de ce que le rapport en a tiré.
Sortie de pdfinfo et valeurs obtenues dans le rapport
Title: Quarterly report Author: J. Doe Creator: Microsoft® Word for Microsoft 365 Producer: Microsoft® Word for Microsoft 365 CreationDate: Sun Mar 15 13:30:22 2026 UTC ModDate: Tue Mar 17 08:15:44 2026 UTC Pages: 1 PDF version: 1.7 Statut de modification : modifié 1 jour, 18 heures et 45 minutes après la création Identification du logiciel : Microsoft Word (office) État du document : 95 (9 contrôles réussis, 1 avertissement)
Creator et Producer ne désignent pas la même chose
Creator nomme l’application dans laquelle le document a été rédigé. Producer nomme le composant qui a écrit les octets du PDF, souvent une bibliothèque ou un pilote d’impression distinct. Un rapport rédigé dans Word puis enregistré via une imprimante virtuelle peut afficher Word comme Creator et le pilote d’impression comme Producer. Lorsque les deux sont vides, soit le fichier a été produit par un outil qui ne les renseigne pas, soit ses métadonnées ont été supprimées.
Le vérificateur compare les deux chaînes à son catalogue d’applications connues et indique la correspondance la plus précise. Les noms sont recherchés comme mots entiers, après suppression des symboles de marque : notre chaîne de test Microsoft® Word est donc indiquée comme Microsoft Word, tandis qu’un nom comme ExampleWriter n’est pas confondu avec LibreOffice Writer. Les noms qu’il ne reconnaît pas sont tout de même affichés, avec la mention « uncategorized » (non catégorisé). Un numéro de version présent dans l’une ou l’autre chaîne est extrait séparément : LibreOffice 24.2 apparaît donc comme LibreOffice, version 24.2.
Remarques sur les dates et ce qui les déclenche
- Une création et une modification séparées de moins de 60 secondes comptent comme une absence de modification, car de nombreux programmes inscrivent les deux dates lors de l’enregistrement.
- Un écart de moins de cinq minutes ajoute la remarque selon laquelle les modifications étaient probablement mineures ou dues à un enregistrement automatique.
- Une date de modification antérieure à la date de création est signalée comme un possible problème d’horloge ou de métadonnées. Notre fichier de test créé le 10 juin et modifié le 1er juin 2026 a affiché cette remarque, et sa fiabilité des dates est passée d’élevée à moyenne.
- L’absence de toute date de modification produit la remarque selon laquelle le document n’a peut-être pas été modifié après sa création. Beaucoup de générateurs n’en écrivent tout simplement jamais.
- La fiabilité des dates part de 100 et perd 30 points si la date de création manque, 20 si elle ne peut pas être analysée et 40 en cas d’anomalie de dates inversées. À partir de 80, elle est élevée ; de 50 à 79, moyenne ; en dessous, faible.
Ce que ces champs ne permettent pas d’établir
Chacun des champs ci-dessus est un texte que n’importe quel éditeur PDF peut modifier, et de nombreuses étapes de conversion le réécrivent sans rien demander. Quand nous avons fait passer notre fichier de test étiqueté Word par Ghostscript, le titre, l’auteur et le Creator ont été conservés, mais le Producer est devenu GPL Ghostscript 10.08.0 et les deux dates ont été remplacées par le moment de la conversion. Une date de création récente indique donc quand cette copie a été écrite, et non quand le contenu a été rédigé pour la première fois.
Les métadonnées ne permettent pas non plus d’identifier une personne. Le champ Author contient généralement le nom du compte de la personne qui a configuré le logiciel, et il est recopié lorsqu’un modèle est réutilisé. Considérez une incohérence entre les champs comme une raison d’y regarder de plus près, et un rapport sans anomalie comme l’absence d’incohérences évidentes, et non comme une preuve d’authenticité.
Dernière mise à jour : . Les valeurs d’exemple ont été mesurées le 12 octobre 2026 en exécutant en local le service de métadonnées du vérificateur, avec Poppler pdfinfo 26.10.0 et l’horloge du serveur réglée sur UTC, sur de petits PDF synthétiques que nous avons générés. Les noms Creator et Producer de ces fichiers ont été saisis comme valeurs de test ; ils ne proviennent pas d’exports réalisés avec les produits cités.