write_pdfa1a.json

Le fichier JSON de l’exemple « Acte de dépôt balisé en PDF/A-1a ». La première partie de la norme d’archivage à son niveau le plus élevé : la page indique aussi quelle ligne est le titre, quels blocs sont des paragraphes et ce qui n’est que décoration.

JSON 82 lignes

Ce fichier est une requête : une application l’envoie par le réseau au serveur, qui crée le PDF et le renvoie. Il crée la même page que les versions Rust et Python de cet exemple. Une requête nomme chaque fichier qu’elle emploie, jamais le contenu de ces fichiers ; l’appel transmet la requête et les fichiers ensemble. Une police que le serveur détient déjà, comme DejaVuSans, se nomme sans rien y joindre. Envoyez la requête à l’adresse que donne la page de l’API.

À quoi sert cet exemple

Un acte conservé trente ans sera lu par des gens que personne n’a encore rencontrés, certains au moyen d’un lecteur d’écran, qui lit la page à voix haute. Une page qui a seulement le bon aspect ne donne rien à ce logiciel : il lit l’encre dans l’ordre où elle a été posée, numéro de page et décoration compris.

Ce que montre cet exemple

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
{
  "archive": "pdfa1a",
  "metadata": {
    "title": "Deed of deposit, January 2026",
    "author": "HQF Development",
    "subject": "A record that says what it is made of, under the first edition",
    "producer": "hqf-pdf-server",
    "created": "2026-01-19T11:30:00+01:00"
  },
  "structure": {
    "lang": "en-GB",
    "children": [
      {
        "tag": "Document",
        "children": [
          {
            "tag": "Sect",
            "children": [
              {"tag": "H1", "content": "heading"},
              {"tag": "P", "content": "body"},
              {"tag": "P", "content": "closing"}
            ]
          }
        ]
      }
    ]
  },
  "items": [
    {
      "type": "flow",
      "rect": {"llx": 72, "lly": 750, "urx": 523, "ury": 782},
      "content": "Deed of deposit",
      "font": "DejaVuSans",
      "font_size": 20,
      "first_baseline": {"points": 0},
      "tag": "H1",
      "mark": "heading",
      "pages": [1]
    },
    {
      "type": "flow",
      "rect": {"llx": 72, "lly": 600, "urx": 523, "ury": 730},
      "content": "This deed claims the first part of the archival standard at its highest level. On top of the promise that the page keeps its looks, and on top of every mark of ink saying which letter it stands for, the file says what it is made of: this line is a heading, that block is a paragraph, and the rule across the foot is furniture that says nothing at all.\nSomething reading the deed aloud follows the order the tree gives rather than the order the ink was laid down in, and reading software on a telephone has something to reflow.",
      "font": "DejaVuSans",
      "font_size": 11,
      "leading": 16,
      "first_baseline": {"points": 0},
      "tag": "P",
      "mark": "body",
      "pages": [1]
    },
    {
      "type": "flow",
      "rect": {"llx": 72, "lly": 520, "urx": 523, "ury": 580},
      "content": "The papers listed above were deposited on 19 January 2026 and are held for thirty years. The first part of the standard is what the depositary asks for by name, so the sheet carries nothing the part closes: no see-through paint, no part of the page that can be switched off, and no file inside it.",
      "font": "DejaVuSans",
      "font_size": 11,
      "leading": 16,
      "first_baseline": {"points": 0},
      "tag": "P",
      "mark": "closing",
      "pages": [1]
    },
    {
      "type": "rect",
      "rect": {"llx": 72, "lly": 70, "urx": 523, "ury": 71},
      "fill": [0, 0, 0],
      "artifact": "footer",
      "pages": [1]
    },
    {
      "type": "flow",
      "rect": {"llx": 72, "lly": 56, "urx": 523, "ury": 68},
      "content": "Page 1 of 1",
      "font": "DejaVuSans",
      "font_size": 9,
      "first_baseline": {"points": 0},
      "artifact": "footer",
      "pages": [1]
    }
  ]
}