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": "gAFbBwAAJSFGb250VHlwZTEtMS4wOiBIcWZTdHJva2UgMDAxLjAwMQolIENvcHlyaWdodCBIUUYgRGV2ZWxvcG1lbnQuIEhxZlN0cm9rZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgc2FtZSB0ZXJtcyBhcyB0aGUgbGlicmFyeSBpdCBpcyBjb21taXR0ZWQgdG8sIGFuZCBtYXkgYmUgY29waWVkLCB1c2VkIGFuZCByZWRpc3RyaWJ1dGVkIHdpdGggaXQuCjExIGRpY3QgYmVnaW4KL0ZvbnRJbmZvIDYgZGljdCBkdXAgYmVnaW4KL05vdGljZSAoQ29weXJpZ2h0IEhRRiBEZXZlbG9wbWVudC4gSHFmU3Ryb2tlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBzYW1lIHRlcm1zIGFzIHRoZSBsaWJyYXJ5IGl0IGlzIGNvbW1pdHRlZCB0bywgYW5kIG1heSBiZSBjb3BpZWQsIHVzZWQgYW5kIHJlZGlzdHJpYnV0ZWQgd2l0aCBpdC4pIHJlYWRvbmx5IGRlZgovRnVsbE5hbWUgKEhxZlN0cm9rZSkgcmVhZG9ubHkgZGVmCi9JdGFsaWNBbmdsZSAwIGRlZgovaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgovVW5kZXJsaW5lUG9zaXRpb24gLTEyMCBkZWYKL1VuZGVybGluZVRoaWNrbmVzcyA2MCBkZWYKZW5kIHJlYWRvbmx5IGRlZgovRm9udE5hbWUgL0hxZlN0cm9rZSBkZWYKL1BhaW50VHlwZSAwIGRlZgovRm9udFR5cGUgMSBkZWYKL0ZvbnRNYXRyaXggWzAuMDAxIDAgMCAwLjAwMSAwIDBdIHJlYWRvbmx5IGRlZgovRW5jb2RpbmcgMjU2IGFycmF5CjAgMSAyNTUgezEgaW5kZXggZXhjaCAvLm5vdGRlZiBwdXR9IGZvcgpkdXAgMzIgL3NwYWNlIHB1dApkdXAgMzMgL2V4Y2xhbSBwdXQKZHVwIDM5IC9xdW90ZXJpZ2h0IHB1dApkdXAgNDAgL3BhcmVubGVmdCBwdXQKZHVwIDQxIC9wYXJlbnJpZ2h0IHB1dApkdXAgNDQgL2NvbW1hIHB1dApkdXAgNDUgL2h5cGhlbiBwdXQKZHVwIDQ2IC9wZXJpb2QgcHV0CmR1cCA0NyAvc2xhc2ggcHV0CmR1cCA0OCAvemVybyBwdXQKZHVwIDQ5IC9vbmUgcHV0CmR1cCA1MCAvdHdvIHB1dApkdXAgNTEgL3RocmVlIHB1dApkdXAgNTIgL2ZvdXIgcHV0CmR1cCA1MyAvZml2ZSBwdXQKZHVwIDU0IC9zaXggcHV0CmR1cCA1NSAvc2V2ZW4gcHV0CmR1cCA1NiAvZWlnaHQgcHV0CmR1cCA1NyAvbmluZSBwdXQKZHVwIDU4IC9jb2xvbiBwdXQKZHVwIDU5IC9zZW1pY29sb24gcHV0CmR1cCA2MyAvcXVlc3Rpb24gcHV0CmR1cCA2NSAvQSBwdXQKZHVwIDY2IC9CIHB1dApkdXAgNjcgL0MgcHV0CmR1cCA2OCAvRCBwdXQKZHVwIDY5IC9FIHB1dApkdXAgNzAgL0YgcHV0CmR1cCA3MSAvRyBwdXQKZHVwIDcyIC9IIHB1dApkdXAgNzMgL0kgcHV0CmR1cCA3NCAvSiBwdXQKZHVwIDc1IC9LIHB1dApkdXAgNzYgL0wgcHV0CmR1cCA3NyAvTSBwdXQKZHVwIDc4IC9OIHB1dApkdXAgNzkgL08gcHV0CmR1cCA4MCAvUCBwdXQKZHVwIDgxIC9RIHB1dApkdXAgODIgL1IgcHV0CmR1cCA4MyAvUyBwdXQKZHVwIDg0IC9UIHB1dApkdXAgODUgL1UgcHV0CmR1cCA4NiAvViBwdXQKZHVwIDg3IC9XIHB1dApkdXAgODggL1ggcHV0CmR1cCA4OSAvWSBwdXQKZHVwIDkwIC9aIHB1dApkdXAgMTkyIC9BZ3JhdmUgcHV0CmR1cCAxOTMgL0FhY3V0ZSBwdXQKZHVwIDE5NCAvQWNpcmN1bWZsZXggcHV0CmR1cCAxOTkgL0NjZWRpbGxhIHB1dApkdXAgMjAwIC9FZ3JhdmUgcHV0CmR1cCAyMDEgL0VhY3V0ZSBwdXQKZHVwIDIwMiAvRWNpcmN1bWZsZXggcHV0CmR1cCAyMDMgL0VkaWVyZXNpcyBwdXQKZHVwIDIwNiAvSWNpcmN1bWZsZXggcHV0CmR1cCAyMDcgL0lkaWVyZXNpcyBwdXQKZHVwIDIxMiAvT2NpcmN1bWZsZXggcHV0CmR1cCAyMTcgL1VncmF2ZSBwdXQKZHVwIDIxOSAvVWNpcmN1bWZsZXggcHV0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"
}
],
"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
}
]
}
|