Cent courriers dans un seul fichier
Dire, dans le fichier lui-même, où finit un destinataire et où commence le suivant, avec ce qu'il faut pour le façonnage.
Résumé
Un envoi de cent relevés de compte, c'est un seul gros fichier et cent courriers différents. La machine qui imprime et met sous pli doit savoir où couper : deux feuilles pour celui-ci, une seule pour celui-là. D'habitude on le lui dit dans un second fichier, à part — et le jour où les deux se décalent, cent enveloppes partent de travers. Ici, le nom du destinataire, sa ville et sa référence voyagent avec les pages : un seul fichier part à l'atelier, et il se suffit.
Techniquement
Écrit au premier niveau d'une requête, sous
"document_parts"
document_parts écrit la hiérarchie /DPartRoot de PDF 2.0 : un arbre dont chaque feuille revendique une plage de pages, et dont les nœuds tiennent les valeurs nommées qu'un atelier de façonnage lit. Une feuille revendique ses pages soit en nommant le premier et le dernier numéro, soit en comptant à partir de là où la partie de document précédente s'est arrêtée ; les deux manières se mêlent librement. Ce qu'une partie de document énonce est une liste de valeurs nommées, jamais un objet, parce que l'ordre dans lequel elle est écrite est l'ordre dans lequel elle a été donnée.
Schéma de la requête
-
document_parts— objet, facultatif, absent par défaut. Absent, le fichier est un seul document. -
document_parts.root— objet, obligatoire. La partie à laquelle toutes les autres se rattachent. -
document_parts.node_names— tableau de chaînes, facultatif, vide par défaut. Le nom de chaque niveau de la hiérarchie, de la racine vers le bas. Un nom qu'un bon de travail ne sait pas lire est refusé. -
document_parts.record_level— entier, facultatif. Le niveau dont chaque partie tient pour un destinataire, la racine comptant pour le niveau zéro. -
Un nœud contient
children(tableau récursif, vide par défaut) ouclaim, jamais les deux, jamais aucun des deux. -
claimprend deux formes :{"pages": {"first": n, "last": n}}avec deux entiers ≥ 1, une plage qui finit avant de commencer étant refusée ; ou{"next_pages": n}avec un entier ≥ 1, qui reprend là où la partie de document précédente s'est arrêtée. Deux plages qui se chevauchent sont refusées. -
data— tableau, facultatif, vide par défaut. Les valeurs nommées que la partie déclare, dans l'ordre. -
data[].name— chaîne, obligatoire. Lettres et chiffres ASCII,_,-,.et:, commençant par une lettre,_ou:. -
data[].value— obligatoire. Sept formes :{"text": s},{"date": s}en ISO 8601,{"integer": i},{"real": f},{"boolean": b},{"list": …},{"fields": …}pour des valeurs nommées imbriquées.
Les parties de document sont décrites par l'article 14.12 de l'ISO 32000-2 ; l'exemple ci-dessous énonce "version": "2.0", qui est la version à laquelle le logiciel de lecture veut bien les honorer.
Une requête entière qui crée un PDF
{
"version": "2.0",
"document_parts": {
"root": {
"children": [
{
"claim": { "next_pages": 1 },
"data": [{ "name": "Recipient", "value": { "text": "Baker and Sons" } }]
},
{
"claim": { "next_pages": 1 },
"data": [{ "name": "Recipient", "value": { "text": "Westmill Dairy" } }]
}
]
}
},
"standard_fonts": [{ "name": "sans", "face": "helvetica" }],
"items": [
{
"type": "text",
"pages": [1],
"rect": { "llx": 60, "lly": 740, "urx": 535, "ury": 762 },
"content": ["Statement for Baker and Sons"],
"font": "sans",
"font_size": 13
},
{
"type": "text",
"pages": [2],
"rect": { "llx": 60, "lly": 740, "urx": 535, "ury": 762 },
"content": ["Statement for Westmill Dairy"],
"font": "sans",
"font_size": 13
}
]
}
Le document dans son ensemble
Les numéros que montre le logiciel de lecture Ce que le document dit de lui-même 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