write_pdfa2b.json

Die JSON-Datei des Beispiels „Ein Betriebsratsprotokoll in PDF/A-2b für dreißig Jahre“. Das Protokoll einer Betriebsratssitzung nach dem zweiten Teil der Archivnorm, auf der Stufe, die nur verspricht, dass die Seite in dreißig Jahren genauso aussieht.

JSON 51 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 Protokoll wird aufbewahrt, weil eines Tages jemand zeigen muss, was beschlossen wurde, und an diesem Tag muss sich die Datei öffnen lassen und so aussehen wie bei der Unterschrift. Eine Schrift, die dem Rechner von morgen fehlt, eine Farbe, deren Bedeutung niemand mehr angeben kann – und das Protokoll sagt etwas anderes.

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
{
  "archive": "pdfa2b",
  "metadata": {
    "title": "Minutes of the works council, 12 March 2026",
    "author": "HQF Development",
    "subject": "A record kept for thirty years, carrying nothing but itself",
    "producer": "hqf-pdf-server",
    "created": "2026-03-12T18:05:00+01:00"
  },
  "items": [
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 756, "urx": 523, "ury": 782},
      "content": ["Minutes of the works council"],
      "font": "DejaVuSans",
      "font_size": 20
    },
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 736, "urx": 523, "ury": 750},
      "content": ["Thursday 12 March 2026, 17:00, meeting room 2"],
      "font": "DejaVuSans",
      "font_size": 10.5
    },
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 620, "urx": 523, "ury": 716},
      "content": ["This sheet claims the second part of the archival standard, at the level that promises one thing and one thing only: the page will look the same in thirty years as it does today. Every face it draws with is carried inside the file, every colour says what it means, and nothing on the page waits on a program, a network or a font that happens to be installed. ", "The second part names no carried file the way the third does, so a record that has to travel with a spreadsheet or an invoice claims the third part instead."],
      "font": "DejaVuSans",
      "font_size": 11,
      "leading": 16,
      "align": "justify"
    },
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 560, "urx": 523, "ury": 596},
      "content": ["Present\nApologies\nNext sitting"],
      "font": "DejaVuSans",
      "font_size": 11,
      "leading": 17
    },
    {
      "type": "text",
      "rect": {"llx": 200, "lly": 560, "urx": 523, "ury": 596},
      "content": ["Nine members of the council and two of the board\nOne member, on leave\nThursday 9 April 2026, 17:00"],
      "font": "DejaVuSans",
      "font_size": 11,
      "leading": 17
    }
  ]
}