write_qr.json

Le fichier JSON de l'exemple « QR codes ». Le code qu'une facture, une carte d'embarquement ou une étiquette finit par réclamer, dessiné dans le document plutôt que récupéré en image sur un site et collé dedans.

JSON 73 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 donne 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 porte 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

Le code QR est celui dont finissent par avoir besoin la plupart des documents : un paiement à faire sur une facture, une carte d'embarquement, un lien vers un dossier, un numéro de série sur une étiquette. C'est aussi celui qu'on va le plus souvent chercher sur un site quelconque, qu'on télécharge en image et qu'on colle — ce qui marche jusqu'au jour où l'image est redimensionnée et où le code cesse d'être lisible.

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
{
  "metadata": {
    "title": "QR codes, drawn as squares"
  },
  "items": [
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 794, "urx": 523.276, "ury": 813.2},
      "content": [
        "QR codes, drawn as squares"
      ],
      "font": "DejaVuSans",
      "font_size": 16
    },
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 770, "urx": 523.276, "ury": 782.6},
      "content": [
        "A QR code holds a link or a reference that a telephone reads in one shot. It is"
      ],
      "font": "DejaVuSans",
      "font_size": 10.5
    },
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 755, "urx": 523.276, "ury": 767.6},
      "content": [
        "drawn square by square here, so it stays readable at any size it is printed at."
      ],
      "font": "DejaVuSans",
      "font_size": 10.5
    },
    {
      "type": "qr",
      "content": "https://example.test/invoice/FR-1964413",
      "rect": {"llx": 72, "lly": 628, "urx": 183, "ury": 739}
    },
    {
      "type": "text",
      "rect": {"llx": 84, "lly": 560, "urx": 284, "ury": 636},
      "content": ["https://example.test/invoice/FR-1964413"],
      "font": "DejaVuSans",
      "font_size": 8,
      "leading": 8
    },
    {
      "type": "qr",
      "content": "REF 2026-07-16/ACME",
      "rect": {"llx": 283.6875, "lly": 628, "urx": 382.6875, "ury": 727}
    },
    {
      "type": "text",
      "rect": {"llx": 295.6875, "lly": 560, "urx": 495.6875, "ury": 636},
      "content": ["REF 2026-07-16/ACME"],
      "font": "DejaVuSans",
      "font_size": 8,
      "leading": 8
    },
    {
      "type": "qr",
      "content": "a-Z 0..9 +*#% and on",
      "rect": {"llx": 421.648438, "lly": 628, "urx": 520.648438, "ury": 727}
    },
    {
      "type": "text",
      "rect": {"llx": 433.648438, "lly": 560, "urx": 570, "ury": 636},
      "content": ["a-Z 0..9 +*#% and on"],
      "font": "DejaVuSans",
      "font_size": 8,
      "leading": 8
    }
  ]
}