Une page composée dans une police de 1990

Du lettrage au plus ancien format d'Adobe, celui qu'une imprimerie a acheté il y a vingt ans et que presque plus rien ne lit, emporté entier dans le fichier. Chaque chiffre que la page en donne a été lu dans la police elle-même.

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_type_one_font.json 192 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.

La demande transporte la police elle-même, qui est une police appartenant au client : c'est donc la seule paire du site rendue pour un client autorisé à en envoyer une. Chaque chiffre que la page énonce sur cette police, la bibliothèque le lit dans la police au fur et à mesure — le nom qu'elle se donne, qu'elle contient 62 formes dont 61 sont atteignables par un code, le cadre qu'elle annonce, l'épaisseur de ses traits et la distance sous la ligne où elle veut un soulignement — et la demande les recopie sous forme de chiffres écrits dedans. Deux poids les accompagnent : ce que la police pèse sur le disque, et ce que pèse un document jetable que la bibliothèque écrit pour la peser. Tous bougent dès que la police est refabriquée ; 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
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
{
  "type1_fonts": [
    {
      "name": "stroke",
      "data": "gAFbBwAAJSFGb250VHlwZTEtMS4wOiBIcWZTdHJva2UgMDAxLjAwMQolIENvcHlyaWdodCBIUUYgRGV2ZWxvcG1lbnQuIEhxZlN0cm9rZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgc2FtZSB0ZXJtcyBhcyB0aGUgbGlicmFyeSBpdCBpcyBjb21taXR0ZWQgdG8sIGFuZCBtYXkgYmUgY29waWVkLCB1c2VkIGFuZCByZWRpc3RyaWJ1dGVkIHdpdGggaXQuCjExIGRpY3QgYmVnaW4KL0ZvbnRJbmZvIDYgZGljdCBkdXAgYmVnaW4KL05vdGljZSAoQ29weXJpZ2h0IEhRRiBEZXZlbG9wbWVudC4gSHFmU3Ryb2tlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBzYW1lIHRlcm1zIGFzIHRoZSBsaWJyYXJ5IGl0IGlzIGNvbW1pdHRlZCB0bywgYW5kIG1heSBiZSBjb3BpZWQsIHVzZWQgYW5kIHJlZGlzdHJpYnV0ZWQgd2l0aCBpdC4pIHJlYWRvbmx5IGRlZgovRnVsbE5hbWUgKEhxZlN0cm9rZSkgcmVhZG9ubHkgZGVmCi9JdGFsaWNBbmdsZSAwIGRlZgovaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgovVW5kZXJsaW5lUG9zaXRpb24gLTEyMCBkZWYKL1VuZGVybGluZVRoaWNrbmVzcyA2MCBkZWYKZW5kIHJlYWRvbmx5IGRlZgovRm9udE5hbWUgL0hxZlN0cm9rZSBkZWYKL1BhaW50VHlwZSAwIGRlZgovRm9udFR5cGUgMSBkZWYKL0ZvbnRNYXRyaXggWzAuMDAxIDAgMCAwLjAwMSAwIDBdIHJlYWRvbmx5IGRlZgovRW5jb2RpbmcgMjU2IGFycmF5CjAgMSAyNTUgezEgaW5kZXggZXhjaCAvLm5vdGRlZiBwdXR9IGZvcgpkdXAgMzIgL3NwYWNlIHB1dApkdXAgMzMgL2V4Y2xhbSBwdXQKZHVwIDM5IC9xdW90ZXJpZ2h0IHB1dApkdXAgNDAgL3BhcmVubGVmdCBwdXQKZHVwIDQxIC9wYXJlbnJpZ2h0IHB1dApkdXAgNDQgL2NvbW1hIHB1dApkdXAgNDUgL2h5cGhlbiBwdXQKZHVwIDQ2IC9wZXJpb2QgcHV0CmR1cCA0NyAvc2xhc2ggcHV0CmR1cCA0OCAvemVybyBwdXQKZHVwIDQ5IC9vbmUgcHV0CmR1cCA1MCAvdHdvIHB1dApkdXAgNTEgL3RocmVlIHB1dApkdXAgNTIgL2ZvdXIgcHV0CmR1cCA1MyAvZml2ZSBwdXQKZHVwIDU0IC9zaXggcHV0CmR1cCA1NSAvc2V2ZW4gcHV0CmR1cCA1NiAvZWlnaHQgcHV0CmR1cCA1NyAvbmluZSBwdXQKZHVwIDU4IC9jb2xvbiBwdXQKZHVwIDU5IC9zZW1pY29sb24gcHV0CmR1cCA2MyAvcXVlc3Rpb24gcHV0CmR1cCA2NSAvQSBwdXQKZHVwIDY2IC9CIHB1dApkdXAgNjcgL0MgcHV0CmR1cCA2OCAvRCBwdXQKZHVwIDY5IC9FIHB1dApkdXAgNzAgL0YgcHV0CmR1cCA3MSAvRyBwdXQKZHVwIDcyIC9IIHB1dApkdXAgNzMgL0kgcHV0CmR1cCA3NCAvSiBwdXQKZHVwIDc1IC9LIHB1dApkdXAgNzYgL0wgcHV0CmR1cCA3NyAvTSBwdXQKZHVwIDc4IC9OIHB1dApkdXAgNzkgL08gcHV0CmR1cCA4MCAvUCBwdXQKZHVwIDgxIC9RIHB1dApkdXAgODIgL1IgcHV0CmR1cCA4MyAvUyBwdXQKZHVwIDg0IC9UIHB1dApkdXAgODUgL1UgcHV0CmR1cCA4NiAvViBwdXQKZHVwIDg3IC9XIHB1dApkdXAgODggL1ggcHV0CmR1cCA4OSAvWSBwdXQKZHVwIDkwIC9aIHB1dApkdXAgMTkyIC9BZ3JhdmUgcHV0CmR1cCAxOTMgL0FhY3V0ZSBwdXQKZHVwIDE5NCAvQWNpcmN1bWZsZXggcHV0CmR1cCAxOTkgL0NjZWRpbGxhIHB1dApkdXAgMjAwIC9FZ3JhdmUgcHV0CmR1cCAyMDEgL0VhY3V0ZSBwdXQKZHVwIDIwMiAvRWNpcmN1bWZsZXggcHV0CmR1cCAyMDMgL0VkaWVyZXNpcyBwdXQKZHVwIDIwNiAvSWNpcmN1bWZsZXggcHV0CmR1cCAyMDcgL0lkaWVyZXNpcyBwdXQKZHVwIDIxMiAvT2NpcmN1bWZsZXggcHV0CmR1cCAyMTcgL1VncmF2ZSBwdXQKZHVwIDIxOSAvVWNpcmN1bWZsZXggcHV0CnJlYWRvbmx5IGRlZgovRm9udEJCb3ggezM0IC0yMzggNjQ3IDk2N30gcmVhZG9ubHkgZGVmCmN1cnJlbnRkaWN0IGVuZApjdXJyZW50ZmlsZSBlZXhlYwqAAjIWAADZ1m9jO4RqmJuZdLAXn8bMRFKVTTpPwnJZaZm6h2zGlhhcurEUygIFWz8QjyJpTyJ2LeYHI+nFU8RQlaTyN+qSuMVh9LVHCDf7IlVgDiXx6FgYFbMvhwiSJiAn9i0hPoiDZLcpx4P0usWKAlFNTVyJX/6rw65e6ING34X+exyzl1SyLfJdhzdczzk6ODI47lc+KkVdMo6OrpjSGXTPzD8mh3fVGWoEIBi5fHG6lMJyKIOzKUaIeTc7Zdi2KdO56/WWiKdGB895QvEiaF/+HpwZcIc0zUa8X8arJOwJ/5QXEhUEkIQUlUhWyNhas3aZPI7qURpyXkBNHKOXoUrc47hdWCBn5s5itv46VymcUvU/6JZljwHCRIijdx9irCj1zRQiKI9I/4By2Ieff0Z7pVc2zJKRea+M6uUNMkZP7S+RTVptUvxfMSIOuaahuSu5jzKtrtPCrRB10Z/rMscOBI/DKnStVlOcsjuiw5iOMNEkOnNqDevgiyDH1qTq9cVp8gWzUZqE5FmRcWwno2P4VG52iSXMKgKs7qABWosbBqG4oCazyqmwaMT+Tez2KnGo1O7nTlmJv9xMjk1trW7J80qzuIyI2QJQoHvMQlPB3xI59RKtIebgviQJdlLHtO7garNenlGCfyXBXuuY7aokVkAA9x3xRSOJJK+zMIgRqSdxza3s8TdSWFhUwYyHBG4Tk70/v9n8SziYrkmRQm7kuMLvzauaziaW7GFoODIKprSeEnZLc44/FI4XORZw1QbR0D6PHp5h63ckPWlLBQ2G19c3jA0mZ+RteLFI1IvEotoH0JapvgvSdwd80fmPU7FzbzLiUJe6JzJrajL4C7yZlX/Ckt72+e+K4mAAbnpmLJrfAHxrukFMxT/Vxq0fBoN1h5gb/tI1UUqfk9PIfDmnbWmt4ZoUdGER3+L0H202gP4bEgF2Kvw2JBmtGJB+AUmIWx8BcyfXXaU8OhcM7naLpba9OFlZFrOJNp1vkXRlgjs41Y7VOJbJ5YIktCDpcD2rHlK9Da74CYLkuKH8UAnT8M80aKJkzXqr/KWxfqOcCxcKPdZORjdxDZR85atyTIlWuIOmxEZtxmd0QDb4rKbkj5BMeBrikj5aoKLFfE8mEGrHWodDnvYs4n+yTpnRTZheXreNV8ZPziLwyRsJtn4dUAwb7Kz5WYiF9VhZ5yr4gycTETODn168wO2jfeRIvJrnwyyiV+5VV9rPrg34IDOEh4XySEW3e2q0kGLbARYT5jNGyuiFHEgVI3ydGtMmgitUQdHvq5SZFDOCq5Bb8aP0Fcm/6cTDgimsvLNWOHeFN5tvYzr+7YFREf397bZyConXBpNrVgA6IxgbfQnWzjXDnfNEF+UjHOVryUf8XJmXOvIR8kz7xSYeiwDGR5x5ylqTABIyVg8GImnsxPOiuWgubBmFMvmcUh/GFbbUP9VqwjemCqbeQPej0HxFy336KuXk/OVGlsTHeXjikApUdPRurIyWLzMaxhrSbRrO4tw+S449WsbP7xBv2uSOEaHTR2x0j5FTZOFZFwlmKhtSG73ih0HEbNfrC9iovihG621w2fa1mowhgZi7t3JRAeiDvo84tKkaAJQTpObVEemByoPbZKdOYLx7OS8zaunMuSqzRzRxlu9fY8Fgm/cB7TPxQlupIZMvcJk1mIN2emqraARVrohzHz1xi/w7c2nuGT4gCNFbtFjLHEc50FUEkosFTmgVx2co+uVcGrRt8Vrbseb+W3p/9T4EQsPY4HKn3AXFqc6MOJqbvltIyrlhGzGdm8HPlCCiZltxj5PJk+mjyKkb0Bqir47nLMdFRD+TscMcUB1d9OA5QMOCWQO8Naim9qf4e68/hc6gAledz17VNDkVoLvKvVsgvmxGlwJHFWfD0XGyaL+P6tyvo8V7Bi1mLunymAq/OYZt9cs+aO2ekoZD38R3a//vz5KrVcJ/8evWHCyj3YvUxVMYDl2FgBXxb90j8XNwUHwFsjBz9C1T6b8rywGQLWzVHkTewaccK0gm5SUiEQ5mzK/Z11VXBBfGGSNl/tJra46gw2uBY1p5Q7wFIhuYtpVuQZ2iiqmS1XKi9hNaY7XwnSitmEUhVMgXuUN6LjbT9jAWrOPKUIk2In7ng23q5F5RPSxYY02BhTCwRGrdOBBa/9NLetWwE/PVIuSNTIG0WCYkBciKMfTfrLa3M8ENYRnJxrt8RH6DI0Zn0ZKlhdZLYC76DKUEvhfEkPGZNKD3gYUESkkNAgY9Ar374rbcsI5uTnD7wPa+j1GVLMyAw5s22s1zi8+9w822HFtg3e4FKmOa81GtcZsdI2SwJiJZYCzmfUEuXrx8HAQPnMNXVGG3+yZJ9KB0khFP58woyGj9FeiSafsf+CauOPzaeP0/s84+zECTxT49aSEuSd8FSqjjh3jZ8LnTLGbtBkL5CMZ9caPdmF8mqf9cZNkEnQ5WKJTLhbHWQARlRZ8Nj9UJElNV0o8i54TopcFn/IRW+ZDvbYpEHR7QF4Ci6BEJdACUaQVG6D+In3K/aT3aLmhFQBVFAYhLx6rgfopSE7/Q3eBS8Ev6vNcuIGGOjUtfVHXctTRR+Z4f2xSqaL2NQ/bzeGG9L4SWJLivz9fLOdI2M5/7CAZW8nBDU9vVv7a1oLDG8M3DYL/x+CCA+l0KVAW45FuX+/+gfqiOP20vJ1Sn6RcvpyeTIFqh2FrMayu74g93J/2O3v8WVF3VeuWiLtVYBgO2k7FoGItf2JKJ6Z8HME+ltA7vYLYZsowtWbMz3rgsHmvdb0Dncxz165/yXszDA/VH06RK57Bt2Be6hp6NljUX2zmyO+Ur21AquXoq/FE+q8WgE1J/sSZ4fLA4dOUxNVKxEuArDHhyFZqi08x7q6dDZAhbgG/aYL1pFC/kiPnqXBH1/RKURQwSrZpVduOWVSMDxgiGKpR3GCvtej9y7hiZXaMrOIuKCjudUfwOcxI7WFGxbTJCX/aEttWcOBI18uTB6IBa7k8yg6TLOcbIFxiBdUw4X0bUDTCMOus1bLzbcWOwlgeBCgZUNqC8RG90n6inA7ERdPnVWVLJ547llDMR2mNReVCznEJhM2fRdwrDLwkxd0nLcpIuHJYB9mfNGeF99JU9mkqSK+t+ZzSxbr3hban8IhmjWdGzxoqBuj7bAvMpEVYbKdc+S5vObvT5+WV+9bkppV7H0eF+yKWrHDmRASRM+vyMjBImCLN2BSnyzor74fXtLpcfakIEYBkPO4em1L4gUJNRrFlktfVFPS3kx8WQ0r/04iVBJrxSEu/MXBgPurJjm38mD27fs4uFtbqXN2oYw8IAZyuJGRLLclj/1Wt53BtReH3fyypGtbvv+y1n4Tj4ysT1VsROs2l10QLh7SfygQZdD6nyQxVg1h/4odN9TermeKd33+I24JUVol34+n9/g3d6uuBWhH00M9z5CpXznJ6u4z+FlJiTWzhUvsotS/ioYE5c8pC7z0UmxmlA4XVLZldNAJzQ3PaUnxG3a4zhXEaB9jEpniOrYXLcTTTrSMVQOub3X+EvYoGQQTOVQ9X6As1pnIjisXpHmBvvefAFTacnuih0NYq7OKvWUCi8T2U0u56YZhASYwRwqZASe9E69gOKAyPne1BARbdWLFm5IsVsKFJtEoe2uJbbwTxoBJ63hxgem09FWmNuagcvDi24wf7ZIJ5oUdm3o2nnzOxZXsi1ozgZQtNkwo8agILKS7PqhQ5gctlNEHQR3Qr7rloVsXGVaq94po81nMHGoz78xu6lt9//K6Bi7EFu+EqDIKS5JE7znGx92QtoI+HXYjgvV3D2HpPbBHZNACA8IfHQv5IOZ4oPXtRlg+bRqgHKI8Iw0H9+ixd94zGKDW4JzcWV9cv99exVnTkKHkYPjIRjKrI3RkqizhqTvW0/Q9v+Dlhf2fvR/L+RjY6u8fPZduu9qArA6MRWhk6yAzZW8k11OypgV717Ha7YKowvwtc1wnEnC4TBI1zqcm/+Gx5Lixz6WEeHnl4WWfegD7AEOyXeElOHMEuk2aEJE/oFJp3BYNWhEPvTBaW6pTdJZSLAV1rNm15+gSnW8V0IPOsXDLph9vwP+lSunqQvJ+KmeooUdgK7d6xcg4p73pLS2KyJhv0n7Rsmie41I1TCoiFRemq01t5l1BN3TCPpOUNRzD5aT8qAjY9uNPVup5mO1mThC00kbgb+Sc769lCSQxWAxJf44x1MCyu6w0trgEDlhnsIK3xf+slKW4H/OlHUIUvNiemN9aoYBPRQYlJLq4F+wohsxKpu3gamDYUiVmk2jJ/oQ8bc46wCDXSGXg+EyVTUE7+ARXSrEEBwW82K4ZNtR32ZYAUui+I74qN+uwZwBHQaaI6t8l1ycMH8E0hLYdobDriMA60ZZ8CZDKRFvB9vrQ4QIcKNaA1ebHMtBanPfxdOY2gclxnkdq8B3sK0kMdeOFGtkZZGXoWDWmq6zXOs51a5Gr2qnP2dTlg43UH6zmMvefJUWihPwgkXOuzA9lRFrqt2m1X4mZuelPxUB02kL5tTs/on8AAz906lUl9sRER86yK1HQRcsHhOSnMHfXvpdAHWiBIz7JwLWvjedXFMejUzDac718OhWzp1mJYtYSyqMmJkaVwyWyIiGO4eNuYWLsg/ScRpNRig4ctrMTLnLE0ClJew9O22bkPdVylSE2XoxBzvpBSKxrwrMGH+K7WmYXQvMa8UZAoN0iEa+kbdJ8FlsbhVa/XoIhC24bHmID9klMk3GNvNqlBFiR57ZILjZsngvOgf/peRseO/sm3EaKRjMlatPTYpWBGZ5lsdjl+3LKg/xkvF+lGh9Ioo3F/2z8uk1b3+6wcKKCZ7Qq1ro5ppub/pA8qsMyOvGIzGoB1qwO5wPpI7B+DUEx4374bPu2ys9I91dU0zju1YXKJZRSwmkxonxrX8k0wE3oSRScCXJYJuVl/8Oxa4tz4eakGvWAZnWQsBTPAS/wvzlraLKfWej7g5tSaEJfjvyuvkyAW3sXr9HEvHbmGSPrCjOfti9763hb1Tw9u2CG8pdME2mPGYGXE3bjQ6sh8DEhqxeTrSPXuhTeg6Xcw+0N/Lj6mVxxpp81vQJFlbQ8Y/+1Rc9kojak2sj/3lIv93zjHo1XwNrhyHAypoyDWt6jU+QURbaiQaR28a85wtmNWtO/3MgMDXCQHqEdgCAbyAYuZ1/7SK4xpd84mQ53Fh/WcpAk+H8ergK0cNlQ2Ol++pMT9jfBUrfUPdkAfVp7UcoN/rS/qkY8WpHb6951e3MOZ2XWkyuepseq5VAFtvecBh3xe/8/B7Ml68uRLwDalZlsXEd0cQRQE9ZGfBB6lgou2IC9hc67h73SXb/MQeGQXE5C+AmF4QkRaY0WX7fN/T7THeaDxYCJVRi3Khhw/iBJyosG5jspbl5wtuLxImcw8BwcUsYm5d3sAK8p0vDkPX0xtFzTot63QpPX8lC3rhXJvYpIUuF9FubfyihIH2++Zs1pZLKJjXQNxtrNeXoH+tlMX43rwpw/3JbXpHbTx3KbtQ9U8Nt5ZmY8/4mIPP17fJ0DafC/NvdCmdGR/BJ//eKdCvKyb5ChYQ7leRenlEHMeMeji567jShQeLLV8VLAB8nBsW8/hBHhuQGPDav8gAOd20wIk1RfYwoHZQNE2vRUrcb9S9UW4+wGg8uO+pDd1+DvFfTzmk9u2bCsRecwWUK9M2bVDhuHOPZBpPPvB/dYqaRz3L0IClMe4jwpfdsloru+Bs8rOeNLTbx1m7dStCUBAbeV1bdHgnNXjQktgshPdDMuNTqkaP4AMIdYDpwDJdx3pBOk8P6cwmiPzCEJmBnzA9h7quS2QEDgDhZ3CNC7Fb/kl7ZgzUqpzDpzAszUIt1vBE5m2cXqQ3Std86cg6V57DX384yajhjCJMQ998djQgt2PpEHyjuklIO5WImY3KbDYVE4Q3MbTPDRor7h4bh/b+psjsHkW8BExPl2pTpQwLQY4yNSKa8Yd9ZvN4iqjEv4IU3o+qSCZN+mF7agm233Owyu+B13PhZvQfaG4iSI6J+IieYqQM+lY8o7sTnIDV67GDekP4nXvbYl6meVK+jkov7Q5j+QuN9r5qOlTMtR/vcWaWDZLQ0f8tpPeLec0wJNxYF3oPCMjoJMjEbGXXBTBebuwD5+yHwi5qx+9ZzQ5A9L56O6i4iYSwiRrf/67UsCkk0UsvkX3fGSO24fXedc4puKAZyI3jhjAZ8rEnEt2+JI3S2SwVAFyYqJzBKkg/mvzIteP+lj2a+RxaJfMmFswXtUOXHBTXsaBPFoJvGybl7Ep0GOCcxDWYzW5FPKlEEXxnizGqqmQ2Gppc434c58PF1Etq4VtDXdPmRO18Go9h35a7EZXnRHKGOkP9mJXHZb5dmFYWS3EF5npc7P7PIWfUE2FjTrsVVfOyA86spNkh1Qgg+XMMAI9P+o0wdX92JzAtKyjLa3hKqkSsnJplgID9C5NXCYYhmZ8kvnhHplW3D9Mc92/o+cu3EDTzntoyPYJHJZ9dX4nXS7q3ww5w1hkyR3vOHXP8Oh2qWLPN2pfx/nW6bGh/XEY9GUH0URGpHH6kXpvOAZWzTzgm0MwcNYOCW0cvYO1BZlloT4MX54B/IG4ME6omOBnKU3phWKMkoRhiVAvE8buEmEtUPad1UC/oxPvaJYBRusAa7oi1qd+PVy+Svufah1aV5YPyKFLmS2+cp6JdK1iH2yNgyKmr3xla9j6UhWk4g6zlQgCCOmKTNtL4/wzfrUCwW2POD5gyroJD29Q2u49zgBFGCSU/KmZA6iVqs7ccPEmf21dgInduiRw//FsIPZ+gczfWlQZ1LYBgKoDOkIeeEgb2NrcEKqEpUnSoy44oYP7xF7THrmnehd+TiMMq3vC6mzS57EMjD8cOK0iOzy/gxlSK7NnOBr8YAP23ya+xmHjoELb4Zpj9EY5OP2K4R6GM2s+/wlYdshWJY2qhAEmwtj+Xn6z9nTAT9yPxJxQtB3F6b2y4NeLPIQj4mpsOPDXl9KmAj/sZD9Ul0MB5ZmWSlSLT0VBFw0WDmvDs9DT15MXmlACvFxlbUZDHhIB0kK6PH1mLYXJzbrzrRWwDzAIrgW+suprMH5gDBbyaOUTnUTj7w8IuFexURgokLG1Ula58eQcnF9TCR6xrLJUmhyciINY81Hpm7OWKZhkYuLSawvGqgklx2qSbnrVKaP3tRLjrLIT0xd6fRt7i+203+ywJgQq67u5HUeoxBGuUU5WfY/eVHgUo6bXelsl3EreZwb1LKdpOk6e5Ql0ue7EGsTU742L6DJNURuyHGJVVmvy3WlW5qHgv/B73b6KmnHTuypdg4KevQQyr5lVko4xorNVjqZPglw+zC3CPV1MKZ/g01FRA9D9n6EabHwOYxLJKP34HU/OhzdURI9VUJhFWI496Xb9bph/dLWp3XIo+djffJbFWK6vi4d8wn1e1s0EdUmzNB0ckAHy8EJiiA1vHVRDnvbYazdD16eaYZGIbsrzkP0RLGGGCFNOlD6f26651Za+qQbkfK9jnro8rEj6Zu3yHRCPQPp3cEcKQM2L2YENAoUOPBISHnPRVo72AARQCAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAowMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAowMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKY2xlYXJ0b21hcmsKgAM="
    }
  ],
  "items": [
    {
      "type": "text",
      "rect": {
        "llx": 72,
        "lly": 738.4,
        "urx": 522,
        "ury": 760
      },
      "content": [
        "A page set in a Type 1 font"
      ],
      "font": "DejaVuSans",
      "font_size": 18
    },
    {
      "type": "text",
      "rect": {
        "llx": 72,
        "lly": 664.4,
        "urx": 522,
        "ury": 724.4
      },
      "content": [
        "The three lines below are drawn from a font program in Adobe's first format. It is not a font file with tables to look a glyph up in: it is a PostScript program, its glyphs ciphered one by one, and the library reads it to find out how wide each of them is and which code reaches it. The program is then carried into this file whole, and the reader draws from those very bytes."
      ],
      "font": "DejaVuSans",
      "font_size": 10
    },
    {
      "type": "text",
      "rect": {
        "llx": 72,
        "lly": 626.0,
        "urx": 522,
        "ury": 640.4
      },
      "content": [
        "Drawn from the program"
      ],
      "font": "DejaVuSans",
      "font_size": 12
    },
    {
      "type": "text",
      "rect": {
        "llx": 72,
        "lly": 594.0,
        "urx": 522,
        "ury": 612
      },
      "content": [
        "HQF DEVELOPMENT"
      ],
      "font": "stroke",
      "font_size": 15
    },
    {
      "type": "text",
      "rect": {
        "llx": 72,
        "lly": 566.0,
        "urx": 522,
        "ury": 584
      },
      "content": [
        "ABCDEFGHIJKLM NOPQRSTUVWXYZ 0123456789"
      ],
      "font": "stroke",
      "font_size": 15
    },
    {
      "type": "text",
      "rect": {
        "llx": 72,
        "lly": 538.0,
        "urx": 522,
        "ury": 556
      },
      "content": [
        "A STROKE FACE, READ AND CARRIED WHOLE."
      ],
      "font": "stroke",
      "font_size": 15
    },
    {
      "type": "text",
      "rect": {
        "llx": 72,
        "lly": 499.6,
        "urx": 522,
        "ury": 514
      },
      "content": [
        "What the program states about itself"
      ],
      "font": "DejaVuSans",
      "font_size": 12
    },
    {
      "type": "text",
      "rect": {
        "llx": 72,
        "lly": 441.6,
        "urx": 522,
        "ury": 489.6
      },
      "content": [
        "It calls itself HqfStroke and holds 62 glyphs, of which 61 are reached by a code. Every glyph stands in one box, whose corners are 34 · -238 and 647 · 967; a vertical stem is 80 thousandths of an em thick, and an underline sits 120 below the line. Not one of those figures is written into this page: each is read out of the program."
      ],
      "font": "DejaVuSans",
      "font_size": 10
    },
    {
      "type": "text",
      "rect": {
        "llx": 72,
        "lly": 407.2,
        "urx": 522,
        "ury": 421.6
      },
      "content": [
        "What it weighs"
      ],
      "font": "DejaVuSans",
      "font_size": 12
    },
    {
      "type": "text",
      "rect": {
        "llx": 72,
        "lly": 373.2,
        "urx": 522,
        "ury": 397.2
      },
      "content": [
        "The program itself is 8 117 bytes on disk, and a page carrying it weighs 8 827 bytes. Both figures are measured by the program that drew this page, not written in by hand."
      ],
      "font": "DejaVuSans",
      "font_size": 10
    },
    {
      "type": "text",
      "rect": {
        "llx": 72,
        "lly": 338.8,
        "urx": 522,
        "ury": 353.2
      },
      "content": [
        "What travels with it, and why"
      ],
      "font": "DejaVuSans",
      "font_size": 12
    },
    {
      "type": "text",
      "rect": {
        "llx": 72,
        "lly": 208.8,
        "urx": 522,
        "ury": 328.8
      },
      "content": [
        "Every other kind of font this library carries travels light: only the letters a page actually draws go into the file, so a page that says one word carries the letters of that word and not a whole alphabet. A Type 1 program does not. It travels whole, and the reason is in the format itself: each glyph is ciphered on its own inside the program, so keeping some and dropping the rest means deciphering the program, rewriting its list of glyphs, and ciphering it again — while holding on to the pieces of outline that several glyphs share, and to the glyphs that are built out of two others. That is a piece of work of its own, and it is deliberately left to a later version of this library. It costs nothing on a face of a few dozen glyphs. It costs real bytes on a large one: a face of sixty thousand bytes travels sixty thousand bytes even where the page shows three words."
      ],
      "font": "DejaVuSans",
      "font_size": 10
    },
    {
      "type": "text",
      "rect": {
        "llx": 72,
        "lly": 156.4,
        "urx": 522,
        "ury": 188.8
      },
      "content": [
        "A Type 1 font is a simple font: its codes are one byte, so at most 256 of its glyphs are reachable at a time and it never sets text down the page. Which code reaches which glyph is the program's own business — this file repeats the program's own names for them."
      ],
      "font": "DejaVuSans",
      "font_size": 9
    }
  ]
}