write_overlay.json

Le fichier JSON de l'exemple « Une facture posée sur un modèle à en-tête ». Une facture posée sur un papier à en-tête fourni sous forme de fichier PDF.

JSON 85 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.

Cette requête nomme des fichiers qu'elle ne contient pas : letterhead. Chacun voyage à côté de la requête, dans le même appel, comme une pièce fournie nommée exactement comme la requête la nomme ici — la description dit quel nom joue quel rôle, vous nommez donc vos fichiers comme vous voulez. Une requête qui nomme un fichier dont l'appel ne contient rien est refusée.

À quoi sert cet exemple

Chaque client a son propre papier à en-tête, et pas un ne vous enverra les polices, le fichier du logo et la couleur exacte à l'impression. Ce qu'il vous enverra, c'est un PDF. Refaire cet en-tête à la main, c'est le sortir à peu près juste — sur chacun des documents que vous produirez pour lui, aussi longtemps qu'il restera client.

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
83
84
85
{
  "items": [
    {
      "type": "pdf_page",
      "pdf": "letterhead",
      "page": 1,
      "rect": {
        "llx": 0.0,
        "lly": 0.0,
        "urx": 595.276,
        "ury": 841.89
      }
    },
    {
      "type": "text",
      "rect": {
        "llx": 56.0,
        "lly": 680.0,
        "urx": 560.0,
        "ury": 699.2
      },
      "content": [
        "Invoice No. 1964413"
      ],
      "font": "DejaVuSans",
      "font_size": 16.0
    },
    {
      "type": "text",
      "rect": {
        "llx": 56.0,
        "lly": 648.0,
        "urx": 560.0,
        "ury": 661.2
      },
      "content": [
        "Issued 14 July 2026"
      ],
      "font": "DejaVuSans",
      "font_size": 11.0
    },
    {
      "type": "text",
      "rect": {
        "llx": 56.0,
        "lly": 626.0,
        "urx": 560.0,
        "ury": 639.2
      },
      "content": [
        "Rendering engine development .............. 4 250.00 EUR"
      ],
      "font": "DejaVuSans",
      "font_size": 11.0
    },
    {
      "type": "text",
      "rect": {
        "llx": 56.0,
        "lly": 604.0,
        "urx": 560.0,
        "ury": 617.2
      },
      "content": [
        "VAT at 20 % ................................. 850.00 EUR"
      ],
      "font": "DejaVuSans",
      "font_size": 11.0
    },
    {
      "type": "text",
      "rect": {
        "llx": 56.0,
        "lly": 582.0,
        "urx": 560.0,
        "ury": 596.4
      },
      "content": [
        "Total due ................................. 5 100.00 EUR"
      ],
      "font": "DejaVuSans",
      "font_size": 12.0
    }
  ]
}