write_soft_hyphen.json

Die JSON-Datei des Beispiels „Weiche Trennstriche und geschützte Leerzeichen“. Eine Blocksatzspalte, zweimal gesetzt: die langen Wörter an ihren weichen Trennstrichen mit sichtbarem Strich umbrochen oder ganz gelassen, und eine Zahl, die ein geschütztes Leerzeichen zusammenhält.

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

Die Bibliothek schreibt den Absatz einmal und nimmt für das obere Feld die weichen Trennstriche heraus; die Anfrage schreibt ihn zweimal aus, den oberen bereits ohne sie. Die Höhe jedes Feldes ist eine Zahl, die die Bibliothek an den gerade gesetzten Zeilen misst, damit sich der Rahmen um die letzte schließt; hier ist sie eingetippt und müsste erneut eingetippt werden, wenn sich ein Wort änderte.

Wofür dieses Beispiel da ist

Eine schmale Blocksatzspalte wird locker, sobald ihre Wörter lang sind: Die Leerräume dehnen sich, weiße Gassen laufen die Seite hinab, und das Auge fällt hinein, statt zu lesen. Was die Seite heute richtig setzt und nichts kostet, ist, im Text selbst anzugeben, wo ein bestimmtes Wort getrennt werden darf (eine automatische Silbentrennung mit einem Wörterbuch für jede Sprache ist für eine künftige Version geplant).

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
92
93
94
95
96
97
98
{
  "items": [
    {
      "type": "text",
      "rect": {
        "llx": 80.0,
        "lly": 750.4,
        "urx": 480.0,
        "ury": 760.0
      },
      "content": [
        "Without soft hyphens: justify opens the lines to fill the column."
      ],
      "font": "DejaVuSans",
      "font_size": 8.0
    },
    {
      "type": "text",
      "rect": {
        "llx": 80.0,
        "lly": 650.0,
        "urx": 230.0,
        "ury": 740.0
      },
      "content": [
        "Our international subscription, billed at 1\u00a0200\u00a0EUR, covers unlimited documents, priority support and quarterly statements."
      ],
      "font": "DejaVuSans",
      "font_size": 11.0,
      "align": "justify",
      "leading": 15.0
    },
    {
      "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": 590.4,
        "urx": 480.0,
        "ury": 600.0
      },
      "content": [
        "With soft hyphens: the long words break, each break drawing a hyphen."
      ],
      "font": "DejaVuSans",
      "font_size": 8.0
    },
    {
      "type": "text",
      "rect": {
        "llx": 80.0,
        "lly": 490.0,
        "urx": 230.0,
        "ury": 580.0
      },
      "content": [
        "Our inter\u00adnational sub\u00adscription, billed at 1\u00a0200\u00a0EUR, covers unlimited docu\u00adments, prior\u00adity support and quarterly state\u00adments."
      ],
      "font": "DejaVuSans",
      "font_size": 11.0,
      "align": "justify",
      "leading": 15.0
    },
    {
      "type": "rect",
      "rect": {
        "llx": 80.0,
        "lly": 490.0,
        "urx": 230.0,
        "ury": 580.0
      },
      "stroke": {
        "width": 0.5,
        "color": [
          0.8,
          0.8,
          0.8
        ]
      }
    }
  ]
}