Les métadonnées Document Info ont parfois été négligées par les producteurs de documents, en grande partie sans doute parce que les moteurs de recherche indexent facilement les contenus des PDF textuels. L'introduction de XMP permet maintenant de développer des applications PDF nouvelles basées sur des schémas de métadonnées spécifiques. À titre d'exemples, on peut mentionner la description bibliographique précise des articles de revues et les informations pré-presse du Ghent PDF Workgroup

Les systèmes de gestion de contenu (CMS), de gestion de ressources numériques (DAM) ainsi que d'autres logiciels comme le partage de bibliographies (Mendeley par exemple) exploitent aussi, à des degrés divers, les métadonnées des documents PDF. Ce regain d'intérêt pour les métadonnées embarquées dans les documents PDF appelle cependant quelques précautions et tout d'abord de connaître les caractéristiques des logiciels chargés de la lecture et de l'écriture de ces informations. Mais pour comprendre cela, nous devons décrire très succinctement la structure d'un document PDF.

Un fichier PDF est un ensemble hiérarchisé d'objets organisés en arbres et listes liées. Une table de références croisées (cross-reference table, en abrégé xref) située à la fin du fichier décrit l'organisation des objets à l'intérieur du document. Lors de la génération du PDF et si aucune mise à jour n'est intervenue, la table xref est constituée d'une seule section. Chaque fois que le document est modifié, de nouvelles sections sont ajoutées à la table xref. Certains objets du document sont alors marqués comme libres dans la table xref. Il s'agit là du mécanisme de mise à jour incrémentielle (incremental update) qui permet d'effectuer de petits changements sur un document PDF sans avoir à recomposer tout le fichier. Lors de mises à jours minimes, comme dans le cas de l'édition de métadonnées effectuées avec certains logiciels, des objets contenant les nouvelles informations sont ajoutés à la fin du fichier, certains objets deviennent obsolètes, une ou plusieurs sections sont marquées comme libres dans la table xref qui peut alors devenir morcelée, et au final la taille du document augmente alors un peu.

En conséquence :

  1. une application qui exploite les métadonnées embarquées dans un document PDF doit « comprendre » le format, c'est-à-dire savoir repérer les objets contenant les métadonnées en question dans la structure PDF en naviguant dans le document à l'aide de la table xref. C'est évident pour l'écriture bien sûr, mais c'est également nécessaire pour la lecture des informations. Il ne suffit pas de scanner linéairement le document du début à la fin à la recherche de marqueurs discriminants pour les Document Info ou les segments XMP (ce que font certains programmes !). En effet, le mécanisme de mise à jour incrémentielle peut conduire à ce qu'un document PDF possède plusieurs Document Info ou segments XMP correspondants aux mises à jours successives du document.
  2. l'utilisation successive d'outils divers pour mettre à jour les métadonnées peut conduire à une situation où les informations contenues en Document Info et celles qui leur correspondent normalement en XMP ne sont pas identiques. Ainsi, le document PDF peut avoir pour auteur « X » lorsqu'on lit les métadonnées avec un logiciel qui exploite uniquement Document Info et « Y » lorsqu'il est exploité avec un logiciel lisant correctement XMP. Il s'agit là d'une situation analogue à celle que l'on connaît bien avec les images numériques où les informations IPTC peuvent parfois apparaître non synchronisées avec les informations XMP. Un logiciel permettant d'éditer les métadonnées embarquées dans les documents PDF doit donc être capable de synchroniser les informations Document Info et XMP, ou à tout le moins - s'il n'est pas compatible XMP - prévenir l'utilisateur que certaines informations peuvent ne pas apparaître en concordance après modification.
  3. il est indispensable de pouvoir importer et exporter les métadonnées au format XMP et sous la forme de fichiers autonomes (habituellement suffixés .xmp). À ma connaissance en effet, seules les applications Adobe permettent d'éditer directement des métadonnées XMP embarquées dans des PDFs en définissant des custom panels. Il est donc nécessaire de disposer d'un mécanisme d'import/export de métadonnées XMP spécifiques qui de plus doit maintenir la cohérence avec les informations correspondantes en Document Info et autoriser la mise à jour sur un lot de documents.

Il existe une multitude de logiciels permettant de générer et éditer ponctuellement des documents PDF (voir par exemple ici, sur Planet PDF, PDF Zone, The PDF Lounge, etc.). Je n'ai pas la prétention dans ce qui suit de fournir un guide des « bons » logiciels gérant correctement les métadonnées des PDF, mais d'indiquer brièvement quelques confusions à éviter en ce qui concerne certains programmes connus.

Parmi les logiciels qui permettent d'éditer les métadonnées, il n'est pas si facile de repérer ceux qui vérifient les caractéristiques évoquées. Il est très commode par exemple de créer et modifier les métadonnées de nombreux types de fichiers (dont les PDF) avec Adobe Bridge ou Lightroom. Ces deux logiciels synchronisent évidemment parfaitement Document Info et XMP (on remarquera au passage qu'il n'est pas nécessaire d'avoir Acrobat pour travailler sur les métadonnées des PDF). Il suffit pour cela d'activer le menu « Informations ». Mais si l'on observe les onglets « Avancé » ou « Données brutes » (en CS4) sur un document PDF qui ne possède que des métadonnées Document Info, une mise en forme XMP s'affiche laissant croire que le document possède aussi des métadonnées de ce type. Il en est de même avec PDF-XChange Viewer, pourtant l'une des meilleures alternatives gratuite à Acrobat Reader, qui permet d'éditer les métadonnées du jeu Document Info, d'ajouter d'autres métadonnées intéressantes, et d'afficher une vue synthétique du XMP, mais ne permet pas à l'utilisateur de distinguer les deux types de métadonnées.

Bridge et Lightroom permettent d'importer et exporter des fichiers .xmp, fonctionnalités indispensables que ne possède pas PDF-XChange Viewer (dans sa version gratuite tout au moins). À l'inverse, l'excellent Exiftool de Phil Harvey - le couteau suisse pour les métadonnées des images - importe et exporte les métadonnées XMP contenues dans les documents PDF. Mais hélas, il ignore les informations Document Info, ce qui peut conduire à des incohérences. De plus, il est préférable lors d'un import de fichier .xmp réalisé avec Exiftool que le document PDF ne possède pas au préalable d'informations XMP. Pour insérer des informations bibliographiques basées sur les DOI, on peut aussi essayer Crossrefs PDFMark (mais je n'ai jamais pu importer avec ce programme des informations stockées dans un fichier .xmp).

Il existe aussi des solutions commerciales (assez chères) comme Traction Software PDF Info.

Si l'on est certain que les PDFs manipulés ne possèdent pas de métadonnées XMP, plusieurs logiciels gratuits permettent d'éditer les informations classiques Document Info. J'en ai mentionné quelques-uns dans un billet précédent. 

L'un des plus intéressants est BeCyPDFMetaEdit de Benjamin Bentmann. Bien qu'il ne gère correctement que les Document Info, ce programme permet de savoir si le document PDF contient aussi des métadonnées XMP. Il permet également de supprimer les métadonnées XMP, ce qui peut parfois être intéressant si l'on veut travailler uniquement avec les Document Info ou réinjecter d'autres métadonnées XMP à l'aide d'un autre programme. [On rappelle que « supprimer » dans une structure PDF peut signifier « marquer comme non utilisé », autrement dit un programme mal conçu qui utilise un document dont on a ainsi effacé des informations peut éventuellement détecter incorrectement des métadonnées.]

Enfin, pour les programmeurs, on mentionnera iText, PDF LibHyperxmp dans le monde Latex, qui permettent entre autres la gestion des métadonnées des PDF, mais on utilisera avec précaution pdftk qui ne gère pas encore XMP.

Bonne Année 2010 !