write_added_to.json

Die JSON-Datei des Beispiels „Ein erhaltener und ergänzter Vertrag, ohne dass sich ein Byte verschoben hat“. Ein Wartungsvertrag, den jemand anderes geschickt hat, mit einem Unterschriftsbereich, einem Datum und einer eigenen Zeile über seiner letzten Seite, einem danach angefügten Anhang und einer leeren Unterschriftsstelle über dem Unterschriftsbereich, wobei jedes Byte des Vertrags an seinem Platz bleibt.

JSON 91 Zeilen

Diese Datei ist eine Anfrage: Eine Anwendung sendet sie über das Netz an den Server, der das PDF erzeugt und zurücksendet. Sie erzeugt dieselbe Seite wie die Rust- und die Python-Fassung dieses Beispiels. Eine Anfrage nennt jede Datei, die sie verwendet, nie ihren Inhalt; der Aufruf trägt die Anfrage und die Dateien zusammen. Eine Schrift, die der Server bereits vorhält, etwa DejaVuSans, wird ohne Anhang genannt. Senden Sie die Anfrage an die Adresse, die die API-Seite angibt.

Wofür dieses Beispiel da ist

Ein Lieferant schickt einen Wartungsvertrag als zweiseitiges PDF. Er muss mit einem Unterschriftsbereich, dem Datum, einer Zeile, die sagt, wer unterschreibt, und einem einseitigen Anhang am Ende zurückgehen. Den Vertrag zu öffnen und neu zu schreiben, ergäbe eine andere Datei: Eine bereits enthaltene Signatur würde nicht mehr halten, und niemand könnte beweisen, dass der Wortlaut noch der gesendete ist.

Was dieses Beispiel zeigt

 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
86
87
88
89
90
91
{
  "supplied_pdfs": { "add_to": { "pdf": "agreement.pdf", "over": [2] } },
  "items": [
    {
      "type": "rect",
      "rect": { "llx": 320.0, "lly": 120.0, "urx": 539.0, "ury": 210.0 },
      "fill": [0.93, 0.96, 1.0],
      "pages": [1]
    },
    {
      "type": "signature_field",
      "name": "approval",
      "rect": { "llx": 320.0, "lly": 120.0, "urx": 539.0, "ury": 210.0 },
      "border": { "width": 1.0, "color": [0.2, 0.35, 0.7] },
      "pages": [1]
    },
    {
      "type": "flow",
      "rect": { "llx": 328.0, "lly": 180.0, "urx": 539.0, "ury": 196.0 },
      "content": "Signature",
      "font": "DejaVuSans",
      "font_size": 9.0,
      "first_baseline": { "points": 0.0 },
      "color": [0.2, 0.35, 0.7],
      "pages": [1]
    },
    {
      "type": "flow",
      "rect": { "llx": 320.0, "lly": 88.0, "urx": 539.0, "ury": 104.0 },
      "content": "Received on 2026-09-12",
      "font": "DejaVuSans",
      "font_size": 9.0,
      "first_baseline": { "points": 0.0 },
      "pages": [1]
    },
    {
      "type": "flow",
      "rect": { "llx": 56.0, "lly": 220.0, "urx": 539.0, "ury": 240.0 },
      "content": "Read and approved, subject to annex A.",
      "font": "DejaVuSans",
      "font_size": 11.0,
      "first_baseline": { "points": 0.0 },
      "pages": [1]
    },
    {
      "type": "flow",
      "rect": { "llx": 56.0, "lly": 750.0, "urx": 539.0, "ury": 770.0 },
      "content": "Annex A",
      "font": "DejaVuSans",
      "font_size": 18.0,
      "first_baseline": { "points": 0.0 },
      "pages": [2]
    },
    {
      "type": "flow",
      "rect": { "llx": 56.0, "lly": 710.0, "urx": 539.0, "ury": 730.0 },
      "content": "The lift in the north wing is serviced every month, not every quarter.",
      "font": "DejaVuSans",
      "font_size": 11.0,
      "first_baseline": { "points": 0.0 },
      "pages": [2]
    },
    {
      "type": "flow",
      "rect": { "llx": 56.0, "lly": 692.0, "urx": 539.0, "ury": 712.0 },
      "content": "This page, the signature area, the date and the line above it were",
      "font": "DejaVuSans",
      "font_size": 11.0,
      "first_baseline": { "points": 0.0 },
      "pages": [2]
    },
    {
      "type": "flow",
      "rect": { "llx": 56.0, "lly": 674.0, "urx": 539.0, "ury": 694.0 },
      "content": "added after the agreement arrived. The first 13 625 bytes of this file",
      "font": "DejaVuSans",
      "font_size": 11.0,
      "first_baseline": { "points": 0.0 },
      "pages": [2]
    },
    {
      "type": "flow",
      "rect": { "llx": 56.0, "lly": 656.0, "urx": 539.0, "ury": 676.0 },
      "content": "are the agreement exactly as it was sent.",
      "font": "DejaVuSans",
      "font_size": 11.0,
      "first_baseline": { "points": 0.0 },
      "pages": [2]
    }
  ]
}