write_pdfa2b.json

The JSON file of the “PDF/A-2b Minutes Kept for Thirty Years” example. Minutes of a works council written to the second part of the archival standard, at the level that promises only that the page will look the same in thirty years.

JSON 51 lines

This file is a request: an application sends it over the network to the server, which creates the PDF and sends it back. It creates the same page as the Rust and Python versions of this example. A request names every file it uses, never its content; the call carries the request and the files together. A font the server already holds, such as DejaVuSans, is named with nothing attached. Send the request to the address the API page gives.

What This Example Is For

Minutes are kept because one day somebody will need to show what was decided, and on that day the file has to open and look the way it did when it was signed. A font missing from the computer of the day, a colour nobody can say the meaning of, and the minutes say something else.

What This Example Shows

 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
    }
  ]
}