Ce que le document dit de lui-même

Donner au fichier son titre, son auteur, son sujet, sa date, et au besoin des informations d'un vocabulaire à vous.

Résumé

Sur le dos d'un classeur, on écrit ce qu'il y a dedans : le titre, qui l'a préparé, de quoi il traite, de quand il date. Un document numérique fait de même, sauf que c'est le logiciel qui lit l'étiquette — et il dit aussi de quel programme le document est sorti : un logiciel de comptabilité, un tableur, un logiciel de dessin. Tout cela est là pour retrouver le fichier plus tard, pour le ranger, pour savoir ce qu'on tient sans l'ouvrir.

Techniquement

Écrit au premier niveau d'une requête, sous "metadata"

metadata écrit le dictionnaire /Info du document et son paquet XMP /Metadata, et tient les deux d'accord : chaque champ est écrit dans les deux, les deux qu'une norme d'archivage tient l'un à l'autre. Seules les entrées de metadata.info n'atteignent que les entrées, aucune propriété du paquet ne leur répondant. Un vocabulaire propre au client s'ajoute par schemas, avec ses propriétés et leurs descriptions, ces dernières étant ce qui permet à un contrôleur d'accepter des noms dont la norme n'a jamais entendu parler. La clé de premier niveau information_dictionary retire le dictionnaire /Info et garde le seul paquet, ce que ISO 32000-2 permet et que rien en dessous de PDF 2.0 ne permet.

Schéma de la requête

  • metadata — objet, facultatif, absent par défaut.
  • metadata.title — chaîne, facultative. Le titre du document.
  • metadata.author — chaîne, facultative. Qui l'a écrit.
  • metadata.subject — chaîne, facultative. Ce qu'il est.
  • metadata.keywords — chaîne, facultative. Les mots par lesquels on retrouve le document.
  • metadata.creator — chaîne, facultative. Le logiciel dans lequel le document d'origine a été écrit.
  • metadata.producer — chaîne, facultatif. Ce qui l'a créé.
  • metadata.created — chaîne, facultative. La date, en ISO 8601, par exemple 2026-08-08T10:00:00+02:00.
  • metadata.modified — chaîne, facultative. La date de la dernière modification du document, sous les mêmes formes. Un document qui n'en déclare aucune a été modifié pour la dernière fois quand il a été fait.
  • metadata.trapped — chaîne, facultative. Trois valeurs : yes, no, unknown. Dit si le document a été préparé pour l'étalement de l'encre en presse. Ne rien dire n'a pas le même sens que dire no.
  • metadata.schemas — tableau, facultatif, vide par défaut. Les vocabulaires propres au client.
  • schemas[].name, schemas[].namespace, schemas[].prefix — chaînes, toutes obligatoires. Les préfixes que la bibliothèque se réserve sont refusés.
  • schemas[].properties — tableau, obligatoire, vide refusé.
  • properties[].name, properties[].value, properties[].description — chaînes, toutes obligatoires ; une description vide est refusée.
  • properties[].value_type — chaîne, facultative, text par défaut. Neuf valeurs : boolean, date, integer, mime_type, proper_name, real, text, uri, url.
  • properties[].category — chaîne, facultative, internal par défaut. Deux valeurs : internal, external.

Les propriétés sont écrites dans le paquet quoi qu'il arrive ; leur description l'est à côté d'elles quand le document déclare une norme qui demande à pouvoir les retrouver.

Archivage : un document qui déclare pdfa3b écrit ce qu'il dit de lui-même aux deux endroits, tandis qu'un document qui déclare pdfa4 n'écrit que le paquet — cette norme-là ne porte aucune entrée. Une requête qui nomme une entrée par metadata.info sous pdfa4 est refusée, l'entrée n'ayant nulle part où aller.

Une requête entière qui crée un PDF

{
  "metadata": {
    "schemas": [
      {
        "name": "Board papers",
        "namespace": "https://example.test/ns/board/",
        "prefix": "board",
        "properties": [
          {
            "name": "Sitting",
            "value": "2026-08-08",
            "description": "The day the board sat",
            "value_type": "date",
            "category": "external"
          }
        ]
      }
    ],
    "title": "Minutes of the board meeting",
    "author": "Claire Vasseur",
    "subject": "Board meeting of 8 August 2026",
    "creator": "The board secretariat system",
    "created": "2026-08-08T10:00:00+02:00"
  },
  "standard_fonts": [{ "name": "sans", "face": "helvetica" }],
  "items": [
    {
      "type": "text",
      "rect": { "llx": 60, "lly": 740, "urx": 535, "ury": 768 },
      "content": ["Minutes of the board meeting"],
      "font": "sans",
      "font_size": 18
    }
  ]
}

La ligne qui l'envoie, en trois langages

Le document dans son ensemble

Les numéros que montre le logiciel de lecture Cent courriers dans un seul fichier Ce que le document dit de lui-même, dit une seule fois Les notes qu'un programme laisse pour lui-même Les notes qu'un programme laisse sur une page Les données qu'un programme accroche à un passage d'encre Un fichier encore lisible dans des dizaines d'années La norme d'impression que le document revendique Le mot de passe qui l'ouvre, et ce qu'on peut en faire Une facture qu'un humain et une machine lisent L'adresse contre laquelle les liens se lisent La version de PDF que le fichier déclare Ce qu'une image dit d'elle-même, et comment elle est lue Les pièces jointes du document, à côté de ses pages Les pièces jointes, présentées en portefeuille Les pièces jointes d'une page La fiche d'identité que contient une seule page La norme d'accessibilité que le document déclare Les normes contre lesquelles le document fini est mesuré

Où aller ensuite

Toutes les clés JSON d'une requête, en une page Les quarante et un autres réglages d'une requête

Voir les prix Voir les exemples