write_flow_break.json

The JSON file of the “Breaking an overlong word” example. A word longer than the column that holds it: the library leaves it whole, or cuts it at the column's edge.

JSON 98 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 makes 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

This example sets the same paragraph twice in a column too narrow for one of its words: every layout eventually meets the word that will not fit — a chemical name, a German compound, a web address, an order reference nobody thought about. The word turns up in production, in one record out of a thousand, long after the team signed the layout off, and it comes back with the next reference, whatever width the column is given. The overlong setting decides: overflow leaves the whole word to run past the edge, break cuts it after the last glyph that fits.

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
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
92
93
94
95
96
97
98
{
  "items": [
    {
      "type": "text",
      "rect": {
        "llx": 80.0,
        "lly": 750.4,
        "urx": 480.0,
        "ury": 760.0
      },
      "content": [
        "Overflow: the word is left whole, and runs past the edge."
      ],
      "font": "DejaVuSans",
      "font_size": 8.0
    },
    {
      "type": "text",
      "rect": {
        "llx": 80.0,
        "lly": 650.0,
        "urx": 230.0,
        "ury": 740.0
      },
      "content": [
        "Paid by bank transfer, reference GB29NWBK60161331926819-2026-07-DEPOSIT, to be matched against the purchase order before the accounts are closed."
      ],
      "font": "DejaVuSans",
      "font_size": 11.0,
      "leading": 15.0,
      "overlong": "overflow"
    },
    {
      "type": "rect",
      "rect": {
        "llx": 80.0,
        "lly": 650.0,
        "urx": 230.0,
        "ury": 740.0
      },
      "stroke": {
        "width": 0.5,
        "color": [
          0.8,
          0.8,
          0.8
        ]
      }
    },
    {
      "type": "text",
      "rect": {
        "llx": 80.0,
        "lly": 610.4,
        "urx": 480.0,
        "ury": 620.0
      },
      "content": [
        "Break: the word is cut after its last glyph that fits."
      ],
      "font": "DejaVuSans",
      "font_size": 8.0
    },
    {
      "type": "text",
      "rect": {
        "llx": 80.0,
        "lly": 510.0,
        "urx": 230.0,
        "ury": 600.0
      },
      "content": [
        "Paid by bank transfer, reference GB29NWBK60161331926819-2026-07-DEPOSIT, to be matched against the purchase order before the accounts are closed."
      ],
      "font": "DejaVuSans",
      "font_size": 11.0,
      "leading": 15.0,
      "overlong": "break"
    },
    {
      "type": "rect",
      "rect": {
        "llx": 80.0,
        "lly": 510.0,
        "urx": 230.0,
        "ury": 600.0
      },
      "stroke": {
        "width": 0.5,
        "color": [
          0.8,
          0.8,
          0.8
        ]
      }
    }
  ]
}