@unisim/doc 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"pdfcore.js","sourceRoot":"","sources":["../src/pdfcore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdfcore.js","sourceRoot":"","sources":["../src/pdfcore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /** A parsed font, in the units a PDF writer wants. */
2
+ export interface EmbeddableFont {
3
+ /** The original file, byte for byte. `/FontFile2` takes it unchanged. */
4
+ bytes: Uint8Array;
5
+ /** From the `name` table, or a safe invention. Used as `/BaseFont`. */
6
+ postScriptName: string;
7
+ numGlyphs: number;
8
+ /** All of these are 1/1000 em, converted from the font's own units. */
9
+ ascent: number;
10
+ descent: number;
11
+ capHeight: number;
12
+ bbox: [number, number, number, number];
13
+ italicAngle: number;
14
+ /** `/Flags` for the descriptor: symbolic vs non-symbolic, serif, italic. */
15
+ flags: number;
16
+ /** The glyph for a code point, or undefined when the font has none. */
17
+ glyphFor(codePoint: number): number | undefined;
18
+ /** A glyph's advance width, in 1/1000 em. */
19
+ advanceOf(glyph: number): number;
20
+ }
21
+ export declare class FontFormatError extends Error {
22
+ }
23
+ /**
24
+ * Parse a `.ttf`.
25
+ *
26
+ * ⚠️ Rejects `.otf` (CFF outlines, `OTTO`) and both flavours of WOFF. All three
27
+ * are real fonts a person might reasonably hand over, and NONE can go into a
28
+ * `/FontFile2` — that key means "a TrueType font program", and a reader given
29
+ * CFF bytes under it will either draw nothing or refuse the file. Failing here
30
+ * with a sentence is much better than producing a PDF that opens blank.
31
+ */
32
+ export declare function readTrueType(bytes: Uint8Array): EmbeddableFont;
33
+ //# sourceMappingURL=truetype.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"truetype.d.ts","sourceRoot":"","sources":["../src/truetype.ts"],"names":[],"mappings":"AAkCA,sDAAsD;AACtD,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,KAAK,EAAE,UAAU,CAAA;IACjB,uEAAuE;IACvE,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAA;IACb,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAC/C,6CAA6C;IAC7C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CACjC;AAiBD,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAE7C;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAgG9D"}
@@ -0,0 +1,289 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Just enough of a TrueType font to embed one in a PDF.
3
+ //
4
+ // WHY THIS EXISTS
5
+ // ---------------
6
+ // The base-14 fonts every PDF reader already has can spell Latin-1 and the
7
+ // Windows-1252 extras, and nothing else. `pdfcore` gives ASCII stand-ins to the
8
+ // symbols that have a fair one — an arrow, a box-drawing rule, a warning sign —
9
+ // but there is no stand-in for an ALPHABET. Cyrillic, Greek and Hebrew were
10
+ // written as a row of '?' and reported as lost, and the only way to write them
11
+ // is to put a font in the file.
12
+ //
13
+ // WHAT IT DELIBERATELY DOES NOT DO
14
+ // --------------------------------
15
+ // * NO SUBSETTING. Rebuilding `glyf`/`loca`/`cmap`/`hmtx` for a subset is the
16
+ // hard, bug-prone half of a font toolkit, and its payoff is output size on
17
+ // the minority of documents that need a font at all. The whole face is
18
+ // embedded, once, and only into documents that use it.
19
+ // * NO SHAPING. There is no GSUB/GPOS here, so scripts that REQUIRE shaping to
20
+ // be legible — Arabic's joining forms, the Indic scripts — are not made
21
+ // readable by embedding a font and must not be claimed. Cyrillic, Greek and
22
+ // Hebrew need none: they are one code point, one glyph, left to right (and
23
+ // Hebrew's direction is the reader's business, not the encoding's).
24
+ // * NO `post` GLYPH NAMES, NO KERNING. Identity-H addresses glyphs by index,
25
+ // so names are never needed; kerning is a refinement the layout engine
26
+ // above this has never had for the base-14 either.
27
+ //
28
+ // ⚠️ THE UNITS TRAP. A font's own numbers are in `unitsPerEm`, which is 2048 for
29
+ // most TrueType faces and 1000 for most PostScript ones. PDF text space is
30
+ // ALWAYS 1/1000. Everything this module hands out is already converted, so a
31
+ // caller never sees `unitsPerEm` — the one number that would silently scale
32
+ // every advance by 2.048 if it leaked.
33
+ // ---------------------------------------------------------------------------
34
+ class Reader {
35
+ bytes;
36
+ view;
37
+ constructor(bytes) {
38
+ this.bytes = bytes;
39
+ this.view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
40
+ }
41
+ u8(at) { return this.view.getUint8(at); }
42
+ u16(at) { return this.view.getUint16(at); }
43
+ i16(at) { return this.view.getInt16(at); }
44
+ u32(at) { return this.view.getUint32(at); }
45
+ /** A 16.16 fixed-point number, which is how `post` stores the italic angle. */
46
+ fixed(at) { return this.view.getInt32(at) / 65536; }
47
+ }
48
+ export class FontFormatError extends Error {
49
+ }
50
+ /**
51
+ * Parse a `.ttf`.
52
+ *
53
+ * ⚠️ Rejects `.otf` (CFF outlines, `OTTO`) and both flavours of WOFF. All three
54
+ * are real fonts a person might reasonably hand over, and NONE can go into a
55
+ * `/FontFile2` — that key means "a TrueType font program", and a reader given
56
+ * CFF bytes under it will either draw nothing or refuse the file. Failing here
57
+ * with a sentence is much better than producing a PDF that opens blank.
58
+ */
59
+ export function readTrueType(bytes) {
60
+ if (bytes.length < 12)
61
+ throw new FontFormatError('That font file is too short to be a font.');
62
+ const r = new Reader(bytes);
63
+ const tag = r.u32(0);
64
+ if (tag === 0x4f54544f) {
65
+ throw new FontFormatError('That is an OpenType/CFF font (.otf). A PDF needs TrueType outlines (.ttf).');
66
+ }
67
+ if (tag === 0x774f4646 || tag === 0x774f4632) {
68
+ throw new FontFormatError('That is a WOFF web font. Uncompress it to a .ttf first.');
69
+ }
70
+ // 0x00010000 is the ordinary TrueType version; 'true' is Apple's old variant.
71
+ if (tag !== 0x00010000 && tag !== 0x74727565) {
72
+ throw new FontFormatError('That file does not start like a TrueType font.');
73
+ }
74
+ const tables = new Map();
75
+ const count = r.u16(4);
76
+ for (let i = 0; i < count; i += 1) {
77
+ const at = 12 + i * 16;
78
+ const name = String.fromCharCode(r.u8(at), r.u8(at + 1), r.u8(at + 2), r.u8(at + 3));
79
+ tables.set(name, { off: r.u32(at + 8), len: r.u32(at + 12) });
80
+ }
81
+ const need = (name) => {
82
+ const t = tables.get(name);
83
+ if (!t)
84
+ throw new FontFormatError(`That font has no '${name}' table, so it cannot be embedded.`);
85
+ return t;
86
+ };
87
+ const head = need('head').off;
88
+ const unitsPerEm = r.u16(head + 18);
89
+ if (!unitsPerEm)
90
+ throw new FontFormatError('That font declares no units per em.');
91
+ // The conversion every number below goes through, and the reason no caller
92
+ // ever sees `unitsPerEm`.
93
+ const toThousandths = (value) => Math.round((value * 1000) / unitsPerEm);
94
+ const numGlyphs = r.u16(need('maxp').off + 4);
95
+ const hhea = need('hhea').off;
96
+ const numberOfHMetrics = r.u16(hhea + 34);
97
+ const hmtx = need('hmtx').off;
98
+ const advances = new Int32Array(numGlyphs);
99
+ let last = 0;
100
+ for (let g = 0; g < numGlyphs; g += 1) {
101
+ if (g < numberOfHMetrics)
102
+ last = r.u16(hmtx + g * 4);
103
+ advances[g] = toThousandths(last);
104
+ }
105
+ const cmap = readCmap(r, need('cmap').off);
106
+ // OS/2 is optional in the spec and present in practice. Where it is missing,
107
+ // hhea's ascender/descender are the same measurements by another name.
108
+ const os2 = tables.get('OS/2')?.off;
109
+ let capHeight = 0;
110
+ let ascent = toThousandths(r.i16(hhea + 4));
111
+ let descent = toThousandths(r.i16(hhea + 6));
112
+ let italic = false;
113
+ if (os2 !== undefined) {
114
+ const version = r.u16(os2);
115
+ ascent = toThousandths(r.i16(os2 + 68)) || ascent; // sTypoAscender
116
+ descent = toThousandths(r.i16(os2 + 70)) || descent; // sTypoDescender
117
+ italic = (r.u16(os2 + 62) & 1) !== 0; // fsSelection bit 0
118
+ if (version >= 2)
119
+ capHeight = toThousandths(r.i16(os2 + 88));
120
+ }
121
+ // A missing cap height is not worth refusing over — readers use it for
122
+ // small-caps substitution and hinting hints, and 70% of the ascent is the
123
+ // conventional stand-in.
124
+ if (!capHeight)
125
+ capHeight = Math.round(ascent * 0.7);
126
+ const post = tables.get('post')?.off;
127
+ const italicAngle = post !== undefined ? r.fixed(post + 4) : 0;
128
+ // /Flags, per PDF 32000-1 table 123. Bit 3 (value 4) is "symbolic", bit 6
129
+ // (32) "non-symbolic"; they are mutually exclusive and a text face is the
130
+ // second. Bit 1 (1) is fixed-pitch, bit 7 (64) italic.
131
+ let flags = 32;
132
+ if (italic || italicAngle !== 0)
133
+ flags |= 64;
134
+ if (numberOfHMetrics === 1)
135
+ flags |= 1;
136
+ return {
137
+ bytes,
138
+ postScriptName: readPostScriptName(r, tables.get('name')?.off) ?? 'EmbeddedFallback',
139
+ numGlyphs,
140
+ ascent,
141
+ descent,
142
+ capHeight,
143
+ italicAngle,
144
+ bbox: [
145
+ toThousandths(r.i16(head + 36)),
146
+ toThousandths(r.i16(head + 38)),
147
+ toThousandths(r.i16(head + 40)),
148
+ toThousandths(r.i16(head + 42)),
149
+ ],
150
+ flags,
151
+ glyphFor: (codePoint) => cmap.get(codePoint),
152
+ advanceOf: (glyph) => (glyph >= 0 && glyph < numGlyphs ? advances[glyph] : 0),
153
+ };
154
+ }
155
+ /**
156
+ * The character map, as one plain Map.
157
+ *
158
+ * Built eagerly rather than searched per lookup. A face this package would
159
+ * embed has a few thousand mapped code points; the Map costs a few hundred
160
+ * kilobytes of heap once, and the alternative is a binary search through the
161
+ * segment arrays on every character of every line, including the re-measure the
162
+ * line-breaker does when a word does not fit.
163
+ *
164
+ * ⚠️ Subtable preference is (3,10) then (3,1) then (0,·) — Microsoft's UCS-4
165
+ * table first, because a font that has both puts everything above U+FFFF in it
166
+ * and only that one can address them.
167
+ */
168
+ function readCmap(r, at) {
169
+ const count = r.u16(at + 2);
170
+ let chosen = null;
171
+ let rank = -1;
172
+ for (let i = 0; i < count; i += 1) {
173
+ const entry = at + 4 + i * 8;
174
+ const platform = r.u16(entry);
175
+ const encoding = r.u16(entry + 2);
176
+ const offset = at + r.u32(entry + 4);
177
+ const score = platform === 3 && encoding === 10 ? 3 :
178
+ platform === 3 && encoding === 1 ? 2 :
179
+ platform === 0 ? 1 : 0;
180
+ if (score > rank) {
181
+ rank = score;
182
+ chosen = offset;
183
+ }
184
+ }
185
+ const map = new Map();
186
+ if (chosen === null)
187
+ return map;
188
+ const format = r.u16(chosen);
189
+ if (format === 4)
190
+ readCmap4(r, chosen, map);
191
+ else if (format === 12)
192
+ readCmap12(r, chosen, map);
193
+ else if (format === 6)
194
+ readCmap6(r, chosen, map);
195
+ return map;
196
+ }
197
+ /** Format 4: segmented, BMP only. What almost every font uses. */
198
+ function readCmap4(r, at, map) {
199
+ const segments = r.u16(at + 6) / 2;
200
+ const endAt = at + 14;
201
+ const startAt = endAt + segments * 2 + 2;
202
+ const deltaAt = startAt + segments * 2;
203
+ const rangeAt = deltaAt + segments * 2;
204
+ for (let s = 0; s < segments; s += 1) {
205
+ const end = r.u16(endAt + s * 2);
206
+ const start = r.u16(startAt + s * 2);
207
+ const delta = r.i16(deltaAt + s * 2);
208
+ const rangeOffset = r.u16(rangeAt + s * 2);
209
+ // The last segment is the required 0xFFFF terminator, not a character.
210
+ for (let code = start; code <= end && code !== 0xffff; code += 1) {
211
+ let glyph;
212
+ if (rangeOffset === 0) {
213
+ glyph = (code + delta) & 0xffff;
214
+ }
215
+ else {
216
+ // The one genuinely strange piece of the format: `idRangeOffset` is a
217
+ // byte offset from ITS OWN slot, not from the start of the array.
218
+ const g = r.u16(rangeAt + s * 2 + rangeOffset + (code - start) * 2);
219
+ glyph = g === 0 ? 0 : (g + delta) & 0xffff;
220
+ }
221
+ if (glyph)
222
+ map.set(code, glyph);
223
+ }
224
+ }
225
+ }
226
+ /** Format 12: flat groups, the whole of Unicode. */
227
+ function readCmap12(r, at, map) {
228
+ const groups = r.u32(at + 12);
229
+ for (let g = 0; g < groups; g += 1) {
230
+ const entry = at + 16 + g * 12;
231
+ const start = r.u32(entry);
232
+ const end = r.u32(entry + 4);
233
+ const firstGlyph = r.u32(entry + 8);
234
+ // A malformed group could otherwise spin for four billion iterations.
235
+ if (end < start || end - start > 0x10ffff)
236
+ continue;
237
+ for (let code = start; code <= end; code += 1)
238
+ map.set(code, firstGlyph + (code - start));
239
+ }
240
+ }
241
+ /** Format 6: one dense range. Rare, and three lines. */
242
+ function readCmap6(r, at, map) {
243
+ const first = r.u16(at + 6);
244
+ const count = r.u16(at + 8);
245
+ for (let i = 0; i < count; i += 1) {
246
+ const glyph = r.u16(at + 10 + i * 2);
247
+ if (glyph)
248
+ map.set(first + i, glyph);
249
+ }
250
+ }
251
+ /**
252
+ * Name ID 6 — the PostScript name — for `/BaseFont`.
253
+ *
254
+ * Both encodings are read because fonts disagree: platform 3 stores UTF-16BE,
255
+ * platform 1 stores single bytes. A name that comes back with a NUL between
256
+ * every letter is the classic symptom of reading one as the other.
257
+ */
258
+ function readPostScriptName(r, at) {
259
+ if (at === undefined)
260
+ return null;
261
+ const count = r.u16(at + 2);
262
+ const storage = at + r.u16(at + 4);
263
+ let fallback = null;
264
+ for (let i = 0; i < count; i += 1) {
265
+ const entry = at + 6 + i * 12;
266
+ if (r.u16(entry + 6) !== 6)
267
+ continue;
268
+ const platform = r.u16(entry);
269
+ const length = r.u16(entry + 8);
270
+ const offset = storage + r.u16(entry + 10);
271
+ let name = '';
272
+ if (platform === 3) {
273
+ for (let b = 0; b + 1 < length; b += 2)
274
+ name += String.fromCharCode(r.u16(offset + b));
275
+ }
276
+ else {
277
+ for (let b = 0; b < length; b += 1)
278
+ name += String.fromCharCode(r.u8(offset + b));
279
+ }
280
+ // A PostScript name may not contain a space or any PDF delimiter.
281
+ name = name.replace(/[\s()<>[\]{}/%]/g, '');
282
+ if (platform === 3 && name)
283
+ return name;
284
+ if (name && !fallback)
285
+ fallback = name;
286
+ }
287
+ return fallback;
288
+ }
289
+ //# sourceMappingURL=truetype.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"truetype.js","sourceRoot":"","sources":["../src/truetype.ts"],"names":[],"mappings":"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"}
@@ -6,5 +6,21 @@ export interface PdfResult {
6
6
  /** Characters no base-14 font can spell, for an honest warning. */
7
7
  dropped: string[];
8
8
  }
9
- export declare function docToPdf(doc: RichDoc, settings: PdfSettings): Promise<PdfResult>;
9
+ /**
10
+ * Where the fallback face comes from.
11
+ *
12
+ * A FUNCTION, and an optional one, because the font is the caller's to supply
13
+ * and the caller's to deliver. This package has no runtime dependencies and
14
+ * ships no font: a 350 KB face compiled into it would be paid for by every app
15
+ * that imports the package and by every document that never needed it. The app
16
+ * decides where the bytes live and whether they are worth fetching.
17
+ *
18
+ * ⚠️ It is called ONLY when the document actually contains something WinAnsi
19
+ * cannot write, so an English document never touches the network. Returning
20
+ * `null` — or throwing, or being offline — is a supported answer: the document
21
+ * comes out exactly as it did before any of this existed, with the unwritable
22
+ * characters as '?' and named in `dropped`.
23
+ */
24
+ export type FallbackFontLoader = () => Promise<Uint8Array | null>;
25
+ export declare function docToPdf(doc: RichDoc, settings: PdfSettings, loadFallbackFont?: FallbackFontLoader): Promise<PdfResult>;
10
26
  //# sourceMappingURL=pdf.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../../src/write/pdf.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAS,OAAO,EAAO,MAAM,aAAa,CAAA;AAMtD,OAAO,KAAK,EAAyB,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAqD1E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAID,wBAAsB,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAgCtF"}
1
+ {"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../../src/write/pdf.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAS,OAAO,EAAO,MAAM,aAAa,CAAA;AAOtD,OAAO,KAAK,EAAyB,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAqD1E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAID;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;AAyBjE,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,WAAW,EACrB,gBAAgB,CAAC,EAAE,kBAAkB,GACpC,OAAO,CAAC,SAAS,CAAC,CA6CpB"}
package/dist/write/pdf.js CHANGED
@@ -26,9 +26,11 @@
26
26
  // * Images, page breaks and a heading level 4, none of which markdown blocks
27
27
  // produced.
28
28
  // ---------------------------------------------------------------------------
29
- import { PdfDocument, rgb, widthOfText } from '../pdfcore.js';
29
+ import { PdfDocument, rgb, unspellable, widthOfText } from '../pdfcore.js';
30
+ import { readTrueType } from '../truetype.js';
30
31
  import { MONO, SANS, SERIF } from '../metrics.js';
31
32
  import { imageToJpeg } from '../image.js';
33
+ import { runsToText } from '../model.js';
32
34
  // ── Palette ──────────────────────────────────────────────────────────────────
33
35
  // The suite's own, matching Universal PDF's markdown export so two documents
34
36
  // converted by two apps in the suite do not look like they came from different
@@ -75,8 +77,39 @@ const MARGINS = {
75
77
  normal: { top: 64, right: 56, bottom: 56, left: 56 },
76
78
  wide: { top: 86, right: 90, bottom: 76, left: 90 },
77
79
  };
78
- // ── Entry point ──────────────────────────────────────────────────────────────
79
- export async function docToPdf(doc, settings) {
80
+ /**
81
+ * Every character in the document, for the "do we need a font at all?" test.
82
+ *
83
+ * Deliberately includes table cells and list items. The first cut of this only
84
+ * walked `'runs' in block`, which is every block EXCEPT the two that a
85
+ * translated document is most likely to put another alphabet in.
86
+ */
87
+ function allText(doc) {
88
+ const parts = [];
89
+ for (const block of doc.blocks) {
90
+ if ('runs' in block)
91
+ parts.push(runsToText(block.runs));
92
+ else if (block.kind === 'code')
93
+ parts.push(block.text);
94
+ else if (block.kind === 'list')
95
+ for (const item of block.items)
96
+ parts.push(runsToText(item.runs));
97
+ else if (block.kind === 'table') {
98
+ if (block.header)
99
+ for (const cell of block.header)
100
+ parts.push(runsToText(cell));
101
+ for (const row of block.rows)
102
+ for (const cell of row)
103
+ parts.push(runsToText(cell));
104
+ }
105
+ }
106
+ if (doc.title)
107
+ parts.push(doc.title);
108
+ if (doc.author)
109
+ parts.push(doc.author);
110
+ return parts.join('\n');
111
+ }
112
+ export async function docToPdf(doc, settings, loadFallbackFont) {
80
113
  // Images are decoded BEFORE anything is laid out, so the renderer itself
81
114
  // stays synchronous. A renderer that awaits mid-paragraph has to make its
82
115
  // page cursor re-entrant, and nothing about drawing a picture needs that.
@@ -96,7 +129,21 @@ export async function docToPdf(doc, settings) {
96
129
  images.set(block.file, null);
97
130
  }
98
131
  }
99
- const renderer = new Renderer(settings, images);
132
+ // The font, if this document needs one and the caller can supply one. Every
133
+ // failure here is survivable and none of them may take the document with it:
134
+ // the result is the '?' behaviour that shipped for months.
135
+ let embedded;
136
+ if (loadFallbackFont && unspellable(allText(doc)).size) {
137
+ try {
138
+ const bytes = await loadFallbackFont();
139
+ if (bytes && bytes.length)
140
+ embedded = readTrueType(bytes);
141
+ }
142
+ catch {
143
+ embedded = undefined;
144
+ }
145
+ }
146
+ const renderer = new Renderer(settings, images, embedded);
100
147
  renderer.renderBlocks(doc.blocks);
101
148
  if (settings.pageNumbers)
102
149
  renderer.drawPageNumbers();
@@ -121,11 +168,25 @@ class Renderer {
121
168
  body;
122
169
  margin;
123
170
  images;
124
- constructor(settings, images) {
171
+ /**
172
+ * The face for everything WinAnsi cannot spell, or undefined.
173
+ *
174
+ * ⚠️ Handed to EVERY `widthOfText` call in this file. Miss one and the
175
+ * line-breaker measures a Cyrillic word as a row of '?' — narrower than the
176
+ * text actually drawn — and the line runs past the right margin. The bug
177
+ * looks like a layout fault and is an argument-list fault.
178
+ */
179
+ embedded;
180
+ constructor(settings, images, embedded) {
125
181
  this.settings = settings;
126
182
  this.body = settings.font === 'serif' ? SERIF : SANS;
127
183
  this.margin = MARGINS[settings.margin];
128
184
  this.images = images;
185
+ this.embedded = embedded;
186
+ // Before `newPage`, and before anything is drawn: a page splits its text
187
+ // between the two fonts as it goes.
188
+ if (embedded)
189
+ this.pdf.embedFallbackFont(embedded);
129
190
  this.newPage();
130
191
  }
131
192
  get base() {
@@ -218,7 +279,7 @@ class Renderer {
218
279
  out.push({
219
280
  run,
220
281
  text: part,
221
- width: widthOfText(font, part, size),
282
+ width: widthOfText(font, part, size, this.embedded),
222
283
  isSpace: /^[ \t]+$/.test(part),
223
284
  isBreak: false,
224
285
  size,
@@ -241,10 +302,10 @@ class Renderer {
241
302
  let rest = token.text;
242
303
  while (rest.length) {
243
304
  let n = 1;
244
- while (n < rest.length && widthOfText(token.font, rest.slice(0, n + 1), token.size) <= maxWidth)
305
+ while (n < rest.length && widthOfText(token.font, rest.slice(0, n + 1), token.size, this.embedded) <= maxWidth)
245
306
  n += 1;
246
307
  const head = rest.slice(0, n);
247
- out.push({ ...token, text: head, width: widthOfText(token.font, head, token.size) });
308
+ out.push({ ...token, text: head, width: widthOfText(token.font, head, token.size, this.embedded) });
248
309
  rest = rest.slice(n);
249
310
  }
250
311
  return out;
@@ -528,13 +589,13 @@ class Renderer {
528
589
  const wrapped = [];
529
590
  for (const raw of text.replace(/\r\n?/g, '\n').split('\n')) {
530
591
  let rest = raw.replace(/\t/g, ' ');
531
- if (widthOfText(font, rest, size) <= maxWidth) {
592
+ if (widthOfText(font, rest, size, this.embedded) <= maxWidth) {
532
593
  wrapped.push(rest);
533
594
  continue;
534
595
  }
535
596
  while (rest.length) {
536
597
  let n = 1;
537
- while (n < rest.length && widthOfText(font, rest.slice(0, n + 1), size) <= maxWidth)
598
+ while (n < rest.length && widthOfText(font, rest.slice(0, n + 1), size, this.embedded) <= maxWidth)
538
599
  n += 1;
539
600
  wrapped.push(rest.slice(0, n));
540
601
  rest = rest.slice(n);
@@ -768,7 +829,7 @@ class Renderer {
768
829
  return;
769
830
  for (let i = 0; i < total; i += 1) {
770
831
  const label = `${i + 1} / ${total}`;
771
- const width = widthOfText(this.body.regular, label, 9);
832
+ const width = widthOfText(this.body.regular, label, 9, this.embedded);
772
833
  this.pages[i].drawText(label, {
773
834
  x: this.pageWidth - this.margin.right - width,
774
835
  y: Math.max(24, this.margin.bottom - 26),