write_pdfa2u.json

Le fichier JSON de l’exemple « Acte de cession recherchable en PDF/A-2u ». Le niveau au-dessus du niveau de base : chaque lettre de la page peut être recherchée et copiée, si bien qu’un registre retrouve l’acte et qu’un greffier en copie une clause telle quelle.

JSON 51 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 registre qui détient trente mille actes en retrouve un en cherchant sa référence. Si le fichier sait seulement à quoi ressemblent ses lettres et non quelles lettres elles sont, la recherche ne trouve rien, et le greffier qui en copie une clause obtient une suite de points d’interrogation.

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
{
  "archive": "pdfa2u",
  "metadata": {
    "title": "Deed of assignment, ACME/2026/0417",
    "author": "HQF Development",
    "subject": "A record whose every word can be searched for and copied out",
    "producer": "hqf-pdf-server",
    "created": "2026-04-17T10:15:00+02:00"
  },
  "items": [
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 756, "urx": 523, "ury": 782},
      "content": ["Deed of assignment"],
      "font": "DejaVuSans",
      "font_size": 20
    },
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 736, "urx": 523, "ury": 750},
      "content": ["Reference ACME/2026/0417, filed 17 April 2026"],
      "font": "DejaVuSans",
      "font_size": 10.5
    },
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 600, "urx": 523, "ury": 716},
      "content": ["This deed claims the second part of the archival standard at the level above the plain one: on top of the promise that the page keeps its looks, every mark of ink drawn on it says which letter it stands for. A registry searching thirty thousand deeds for a reference finds this one; a clerk copying a clause out of it gets the clause, not a row of question marks. ", "That is the whole of the difference between the two levels. Nothing about the layout changes, and nothing is added to the page."],
      "font": "DejaVuSans",
      "font_size": 11,
      "leading": 16,
      "align": "justify"
    },
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 540, "urx": 523, "ury": 576},
      "content": ["Assignor\nAssignee\nEffective"],
      "font": "DejaVuSans",
      "font_size": 11,
      "leading": 17
    },
    {
      "type": "text",
      "rect": {"llx": 200, "lly": 540, "urx": 523, "ury": 576},
      "content": ["Ateliers du Nord, Lille\nACME Industries, Rouen\n1 May 2026"],
      "font": "DejaVuSans",
      "font_size": 11,
      "leading": 17
    }
  ]
}