Les pièces jointes, présentées en portefeuille
Dire comment un logiciel de lecture dispose les pièces jointes : les colonnes, ce que chaque fichier y met, l’ordre, et quel fichier s’ouvre en premier.
Le résultat dans un vrai PDF
Un dossier d’appel d’offres de trois lots
Trois lots, chacun joint au document comme un fichier séparé, décrits par les colonnes que le document définit lui-même — lot, jour d’envoi, montant — et triés du plus récent au plus ancien. La page de garde reprend les mêmes colonnes en clair, pour les logiciels de lecture qui n’affichent pas les fichiers joints.
Résumé
Un document peut contenir des fichiers entiers, et un logiciel de lecture à qui l’on n’en dit pas plus montre une liste de noms de fichiers — qui ne dit ni lequel est arrivé quand, ni pour quel montant. Ici, vous donnez le tableau : les intitulés de colonne qu’une personne lit en haut, ce que chaque pièce jointe met dans chacune, la colonne sur laquelle les lignes sont triées, et le fichier qui s’ouvre en premier. Quatre colonnes ne demandent rien du tout, parce qu’elles sont lues sur le fichier même : le nom sous lequel il est joint, ce qu’il est en mots, quand il a changé pour la dernière fois et sa taille en octets.
Techniquement
Écrit au premier niveau d’une requête, sous
"collection"
collection écrit le /Collection du document, son /Schema de colonnes et son /Sort, et les valeurs propres à chaque pièce jointe arrivent dans le fichier sous la forme du /CI posé à côté de sa spécification de fichier. Les fichiers que contient une collection sont ceux qu'attachments a joints, et aucun autre. Une colonne se lie par key à la valeur qu’un fichier énonce pour elle, et ce key n’est montré à personne ; data dit ce que la colonne contient, et les quatre sortes lues sur la pièce jointe elle-même — file_name, description, modified, size — ne prennent aucune valeur au fichier : rien ne peut donc le contredire. Un moment s’énonce en ISO 8601, comme tous les moments du schéma, et arrive dans le fichier au format de date de PDF. Un sort qui nomme une clé qu’aucune colonne ne contient n’est pas refusé : un logiciel de lecture ordonne alors les lignes comme il l’entend. La déclaration fait passer à 1.7 la version que le document annonce.
Schéma de la requête
-
collection— objet, facultatif. Absent, les pièces jointes restent une simple liste de noms. -
collection.view— chaîne, facultative,rowspar défaut. Une valeur parmirows(chaque fichier sur sa propre ligne),tiles(chacun comme une petite image) ethidden(rien n’est affiché tant que le lecteur ne le demande pas). -
collection.opens_on— chaîne, facultative. Le fichier ouvert en premier, par le nom sous lequel il est joint. Absente, c’est le document lui-même qui s’ouvre, et un nom sans pièce jointe correspondante n’est pas refusé. -
collection.columns— tableau, facultatif. Les colonnes du tableau, dans l’ordre où elles se présentent. -
columns[].key— chaîne, obligatoire. Ce qui lie la colonne à la valeur qu’un fichier énonce pour elle. Personne ne le voit. -
columns[].title— chaîne, obligatoire. L’en-tête que lit une personne. -
columns[].data— chaîne, obligatoire. Une valeur parmitext,dateetnumber, que le fichier énonce, etfile_name,description,modifiedetsize, qui sont lues sur la pièce jointe. -
columns[].hidden— booléen, facultatif, faux par défaut. Si la colonne reste hors de vue tant que le lecteur ne la demande pas. -
collection.sort— objet, facultatif.key, la colonne sur laquelle les lignes sont triées, etascending, si l’ordre est croissant. Les deux sont obligatoires dès que l’objet est là. -
collection.folders— objet, facultatif. Le dossier racine sous lequel les fichiers sont rangés :id, un numéro, etname, tous deux obligatoires ;description;createdetmodified, une date et une heure au format ISO 8601 ;columns, ce que le dossier indique pour les colonnes de la collection, sous la même forme que pour un fichier ;children, les dossiers qu’il contient, chacun décrit de la même façon. Sont refusés deux dossiers de même numéro, deux éléments d’un même dossier dont les noms sont identiques à la casse près, et un nom qui n’est pas un nom de fichier valide. Dès qu’il y a des dossiers, le document est écrit en PDF 2.0. -
attachments[].columns— tableau, facultatif. Ce qu’un fichier énonce, une entrée par colonne :key, et la valeur, rangée sous la sorte de donnée de cette colonne —text,dateounumber.
Portée : le document entier. C’est attachments qui contient les fichiers ; ceci ne dit que la façon dont ils sont disposés.
Une requête entière qui crée un PDF
{
"attachments": [
{
"name": "lot_a",
"file_name": "lot-a.xml",
"description": "Earthworks and site clearance",
"media_type": "text/xml",
"relationship": "source",
"modified": "2026-07-14T09:30:00+02:00",
"columns": [
{ "key": "lot", "text": "Earthworks and site clearance" },
{ "key": "sent", "date": "2026-07-14T09:30:00+02:00" },
{ "key": "total", "number": 18400 }
]
}
],
"collection": {
"view": "rows",
"opens_on": "lot_a",
"columns": [
{ "key": "lot", "title": "Lot", "data": "text" },
{ "key": "sent", "title": "Sent", "data": "date" },
{ "key": "total", "title": "Total", "data": "number" },
{ "key": "weight", "title": "Bytes", "data": "size", "hidden": true }
],
"sort": { "key": "sent", "ascending": false }
},
"standard_fonts": [{ "name": "sans", "face": "helvetica" }],
"items": [
{
"type": "text",
"rect": { "llx": 72, "lly": 700, "urx": 523, "ury": 740 },
"content": ["Tender pack: the lots travel inside this document"],
"font": "sans",
"font_size": 12
}
]
}
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 Ce que le document dit de lui-même, dit une seule fois Un texte que personne ne peut copier 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 déclare La norme d’impression variable déclarée par le document 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 à partir de laquelle se lisent les liens relatifs La version de PDF que le fichier déclare Les extensions de PDF dont le fichier dit se servir 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 Des fichiers que le document nomme sans les contenir Les pièces jointes que revendique une page Les pièces jointes que revendique une police La fiche d’identité propre à une police Les pièces jointes que revendique la fiche du document Une fiche de document rédigée ailleurs Les zones d’une page où un lecteur mesure 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