Une page qui ne transporte aucune police

Quatre polices que tout logiciel de lecture dessine déjà, sur une seule page, donc le fichier n'en contient aucune — et l'exemple pèse les mêmes lignes des deux façons pour dire ce que cela économise.

Cette page est le programme entier, pour celui qui écrit vos logiciels. Il n'y a rien d'autre à y lire. Revenir au document qu'il écrit.

JSON write_no_font_at_all.json 82 lignes

Celui-ci n'est pas un programme. C'est la requête envoyée au serveur de documents : la même page, demandée par le réseau, par une application qui n'écrit pas une ligne de code PDF.

Cette demande écrit noir sur blanc les deux poids que la bibliothèque compte toute seule : 5 507 octets pour la page composée dans des caractères que le fichier ne transporte pas, et 39 684 pour la même page avec un caractère transporté dedans. La bibliothèque les lit sur deux documents jetables qu'elle écrit exprès : ils suivent donc tout ce qui entre dans un document, et tout ce que pèse le caractère transporté. Ici ils sont tapés à la main, et il faudrait les retaper. La bibliothèque pose aussi un gris avant la note de fin puis énonce du noir à l'intérieur de la note : le gris ne peint donc rien. La demande n'énonce aucune couleur à cet endroit et dessine la même page avec une instruction de moins.

 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
{
  "standard_fonts": [
    {"name": "sans", "face": "helvetica"},
    {"name": "serif_bold_italic", "face": "times_bold_italic"},
    {"name": "mono", "face": "courier"},
    {"name": "signs", "face": "symbol"}
  ],
  "items": [
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 738.4, "urx": 522, "ury": 760},
      "content": ["A page that carries no font"],
      "font": "sans",
      "font_size": 18
    },
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 700.4, "urx": 522, "ury": 724.4},
      "content": ["Every one of the lines below is set in a font this file does not hold. A reader draws them from its own store, which is what the standard asks of it, so nothing of the typefaces travels with the document."],
      "font": "sans",
      "font_size": 10
    },
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 662, "urx": 522, "ury": 676.4},
      "content": ["Four of the fourteen"],
      "font": "sans",
      "font_size": 12
    },

    {
      "type": "text",
      "rect": {"llx": 72, "lly": 634.4, "urx": 522, "ury": 650},
      "content": ["Helvetica, the one without serifs."],
      "font": "sans",
      "font_size": 13
    },
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 608.8, "urx": 522, "ury": 624.4},
      "content": ["Times Bold Italic, and it is already accented: déjà, ç, ù, ô, ï."],
      "font": "serif_bold_italic",
      "font_size": 13
    },
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 583.2, "urx": 522, "ury": 598.8},
      "content": ["Courier, where every letter is the same width."],
      "font": "mono",
      "font_size": 13
    },
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 557.6, "urx": 522, "ury": 573.2},
      "content": ["Σ √ ∫ αβγ ≥ ∞"],
      "font": "signs",
      "font_size": 13
    },

    {
      "type": "text",
      "rect": {"llx": 72, "lly": 519.2, "urx": 522, "ury": 533.6},
      "content": ["What it saves"],
      "font": "sans",
      "font_size": 12
    },
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 473.2, "urx": 522, "ury": 509.2},
      "content": ["Those four lines, on a page of their own, weigh 5 507 bytes. The same four lines, with one font carried inside the file, weigh 39 684. Both figures are measured by the program that drew this page, not written in by hand."],
      "font": "sans",
      "font_size": 10
    },
    {
      "type": "text",
      "rect": {"llx": 72, "lly": 420.8, "urx": 522, "ury": 453.2},
      "content": ["It is not free. A file claiming an archival or accessibility standard may not do this — those standards want every font carried — and these faces draw only the letters their own encoding reaches, so a writing system outside it needs a font the file does carry."],
      "font": "sans",
      "font_size": 9
    }
  ]
}