@unisim/doc 0.6.0 → 0.8.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.
package/dist/pdfcore.js CHANGED
@@ -152,45 +152,135 @@ function boxDrawing(code) {
152
152
  */
153
153
  export function toWinAnsi(text, report) {
154
154
  const out = [];
155
- // NFC first. A macOS-authored file routinely spells 'é' as a bare 'e' plus a
156
- // combining acute, and decomposed, NEITHER half is WinAnsi: the accent has no
157
- // code and the pair came out as 'e?'. Composed, it is one byte this encoder
158
- // has had all along. One call, and every accented Latin document it was
159
- // silently mangling comes out right.
160
- for (const ch of text.normalize('NFC')) {
155
+ for (const ch of normalise(text)) {
161
156
  if (IGNORABLE.has(ch))
162
157
  continue;
163
- const sub = SUBSTITUTES[ch] ?? boxDrawing(ch.codePointAt(0));
164
- if (sub !== undefined) {
165
- for (const c of sub)
166
- out.push(c.charCodeAt(0));
158
+ const bytes = winAnsiBytes(ch);
159
+ if (bytes) {
160
+ out.push(...bytes);
167
161
  continue;
168
162
  }
169
- const code = ch.codePointAt(0);
170
- if (code === 9) {
171
- out.push(32);
163
+ report?.dropped.add(ch);
164
+ out.push(0x3f); // '?'
165
+ }
166
+ return out;
167
+ }
168
+ /**
169
+ * NFC first, everywhere.
170
+ *
171
+ * A macOS-authored file routinely spells 'é' as a bare 'e' plus a combining
172
+ * acute, and decomposed, NEITHER half is WinAnsi: the accent has no code and
173
+ * the pair came out as 'e?'. Composed, it is one byte this encoder has had all
174
+ * along. ⚠️ Every path that measures or draws text has to call this, or the
175
+ * layout measures a string one way and writes it another.
176
+ */
177
+ function normalise(text) {
178
+ return text.normalize('NFC');
179
+ }
180
+ /**
181
+ * One character's WinAnsi bytes, or null when the encoding has no answer for
182
+ * it. Null is the signal that an embedded font is the only way to write it.
183
+ */
184
+ function winAnsiBytes(ch) {
185
+ const sub = SUBSTITUTES[ch] ?? boxDrawing(ch.codePointAt(0));
186
+ if (sub !== undefined) {
187
+ const out = [];
188
+ for (const c of sub)
189
+ out.push(c.charCodeAt(0));
190
+ return out;
191
+ }
192
+ const code = ch.codePointAt(0);
193
+ if (code === 9)
194
+ return [32]; // tab — the layout owns indentation
195
+ if ((code >= 32 && code <= 126) || (code >= 160 && code <= 255))
196
+ return [code];
197
+ const high = WIN_ANSI_HIGH[ch];
198
+ if (high !== undefined)
199
+ return [high];
200
+ return null;
201
+ }
202
+ function segment(text, embedded) {
203
+ const out = [];
204
+ const push = (glyphs) => {
205
+ const last = out[out.length - 1];
206
+ if (last && !!last.glyphs === glyphs)
207
+ return last;
208
+ const fresh = glyphs ? { bytes: [], glyphs: [], source: [] } : { bytes: [] };
209
+ out.push(fresh);
210
+ return fresh;
211
+ };
212
+ for (const ch of normalise(text)) {
213
+ if (IGNORABLE.has(ch))
172
214
  continue;
173
- } // tab — the layout owns indentation
174
- if ((code >= 32 && code <= 126) || (code >= 160 && code <= 255)) {
175
- out.push(code);
215
+ const bytes = winAnsiBytes(ch);
216
+ if (bytes) {
217
+ push(false).bytes.push(...bytes);
176
218
  continue;
177
219
  }
178
- const high = WIN_ANSI_HIGH[ch];
179
- if (high !== undefined) {
180
- out.push(high);
220
+ const glyph = embedded?.glyphFor(ch.codePointAt(0));
221
+ if (glyph !== undefined && glyph > 0) {
222
+ const seg = push(true);
223
+ seg.glyphs.push(glyph);
224
+ seg.source.push(ch);
181
225
  continue;
182
226
  }
183
- report?.dropped.add(ch);
184
- out.push(0x3f); // '?'
227
+ // No WinAnsi code and no glyph in the embedded face either — a '?' it is,
228
+ // and the report is what turns that into a sentence in the UI.
229
+ push(false).bytes.push(0x3f);
185
230
  }
186
231
  return out;
187
232
  }
188
- /** The width of a string at a given size, in points. */
189
- export function widthOfText(font, text, size) {
233
+ /**
234
+ * The characters in `text` that WinAnsi cannot write.
235
+ *
236
+ * Empty means the base-14 fonts can spell the whole string, and no font needs
237
+ * to be fetched or embedded. This is what lets an English document pay nothing
238
+ * for a feature it does not use — the loader is never even called.
239
+ */
240
+ export function unspellable(text) {
241
+ const out = new Set();
242
+ for (const ch of normalise(text)) {
243
+ if (IGNORABLE.has(ch))
244
+ continue;
245
+ if (!winAnsiBytes(ch))
246
+ out.add(ch);
247
+ }
248
+ return out;
249
+ }
250
+ /** What `segment` could not write at all, for the honest warning. */
251
+ function reportDropped(text, embedded, report) {
252
+ if (!report)
253
+ return;
254
+ for (const ch of normalise(text)) {
255
+ if (IGNORABLE.has(ch))
256
+ continue;
257
+ if (winAnsiBytes(ch))
258
+ continue;
259
+ const glyph = embedded?.glyphFor(ch.codePointAt(0));
260
+ if (glyph === undefined || glyph === 0)
261
+ report.dropped.add(ch);
262
+ }
263
+ }
264
+ /**
265
+ * The width of a string at a given size, in points.
266
+ *
267
+ * `embedded` must be the SAME face the page will draw with, or the line-breaker
268
+ * and the content stream disagree. Callers that never embed one pass nothing
269
+ * and get exactly the behaviour they had.
270
+ */
271
+ export function widthOfText(font, text, size, embedded) {
190
272
  const metrics = FONT_METRICS[font];
191
273
  let units = 0;
192
- for (const code of toWinAnsi(text))
193
- units += metrics.widths[code] ?? metrics.fallback;
274
+ for (const seg of segment(text, embedded)) {
275
+ if (seg.glyphs) {
276
+ for (const glyph of seg.glyphs)
277
+ units += embedded.advanceOf(glyph);
278
+ }
279
+ else {
280
+ for (const code of seg.bytes)
281
+ units += metrics.widths[code] ?? metrics.fallback;
282
+ }
283
+ }
194
284
  return (units * size) / 1000;
195
285
  }
196
286
  // ── The document ─────────────────────────────────────────────────────────────
@@ -231,11 +321,14 @@ export class PdfPage {
231
321
  links = [];
232
322
  /** Fonts actually used, so a page's /Resources only names what it draws. */
233
323
  usedFonts = new Set();
324
+ usesEmbedded = false;
234
325
  report;
235
- constructor(width, height, report) {
326
+ embed;
327
+ constructor(width, height, report, embed) {
236
328
  this.width = width;
237
329
  this.height = height;
238
330
  this.report = report;
331
+ this.embed = embed;
239
332
  }
240
333
  /**
241
334
  * Change this page's paper size. See the note on `width`/`height` above:
@@ -256,9 +349,57 @@ export class PdfPage {
256
349
  drawText(text, opts) {
257
350
  if (!text)
258
351
  return;
259
- this.usedFonts.add(opts.font);
260
- const bytes = toWinAnsi(text, this.report);
261
- this.ops.push('BT', `${num(opts.color.r)} ${num(opts.color.g)} ${num(opts.color.b)} rg`, `/${opts.font} ${num(opts.size)} Tf`, `${num(opts.x)} ${num(opts.y)} Td`, `${pdfStringFromBytes(bytes)} Tj`, 'ET');
352
+ const embedded = this.embed?.font;
353
+ reportDropped(text, embedded, this.report);
354
+ const segments = segment(text, embedded);
355
+ // The overwhelmingly common case: one segment, one font, one `Tj`. Kept on
356
+ // its own path so an all-Latin document's content stream is byte-for-byte
357
+ // what it was before any of this existed.
358
+ if (segments.length === 1 && !segments[0].glyphs) {
359
+ this.usedFonts.add(opts.font);
360
+ this.ops.push('BT', `${num(opts.color.r)} ${num(opts.color.g)} ${num(opts.color.b)} rg`, `/${opts.font} ${num(opts.size)} Tf`, `${num(opts.x)} ${num(opts.y)} Td`, `${pdfStringFromBytes(segments[0].bytes)} Tj`, 'ET');
361
+ return;
362
+ }
363
+ // A mixed line — 'Reference: Приложение А'. Each stretch is drawn with its
364
+ // own font at its own x, advanced by the width of the one before it. This
365
+ // is why measuring and drawing must segment identically: the x values here
366
+ // are what the line-breaker was promised.
367
+ //
368
+ // ⚠️ `Tm`, NOT `Td`. `Td` is relative to the START OF THE CURRENT LINE, so
369
+ // a second one inside the same BT/ET lands at the SUM of the two offsets —
370
+ // the third segment of a line drew at 3y, off the top of the page. The
371
+ // single-segment path above keeps `Td` because there is exactly one of
372
+ // them and BT has just reset the matrix, which makes it absolute and keeps
373
+ // an all-Latin content stream byte-for-byte what it always was.
374
+ const metrics = FONT_METRICS[opts.font];
375
+ let x = opts.x;
376
+ this.ops.push('BT', `${num(opts.color.r)} ${num(opts.color.g)} ${num(opts.color.b)} rg`);
377
+ for (const seg of segments) {
378
+ let units = 0;
379
+ if (seg.glyphs) {
380
+ if (!seg.glyphs.length)
381
+ continue;
382
+ this.usesEmbedded = true;
383
+ for (let i = 0; i < seg.glyphs.length; i += 1) {
384
+ const glyph = seg.glyphs[i];
385
+ units += embedded.advanceOf(glyph);
386
+ // Last writer wins, and they agree: the same glyph reached by two
387
+ // code points is one entry either way.
388
+ this.embed.used.set(glyph, seg.source[i]);
389
+ }
390
+ this.ops.push(`/${EMBEDDED_FONT_KEY} ${num(opts.size)} Tf`, `1 0 0 1 ${num(x)} ${num(opts.y)} Tm`, `${hexStringFromGlyphs(seg.glyphs)} Tj`);
391
+ }
392
+ else {
393
+ if (!seg.bytes.length)
394
+ continue;
395
+ this.usedFonts.add(opts.font);
396
+ for (const code of seg.bytes)
397
+ units += metrics.widths[code] ?? metrics.fallback;
398
+ this.ops.push(`/${opts.font} ${num(opts.size)} Tf`, `1 0 0 1 ${num(x)} ${num(opts.y)} Tm`, `${pdfStringFromBytes(seg.bytes)} Tj`);
399
+ }
400
+ x += (units * opts.size) / 1000;
401
+ }
402
+ this.ops.push('ET');
262
403
  }
263
404
  drawRect(opts) {
264
405
  if (opts.width <= 0 || opts.height <= 0)
@@ -291,15 +432,30 @@ export class PdfPage {
291
432
  images: this.images,
292
433
  links: this.links,
293
434
  fonts: [...this.usedFonts],
435
+ embedded: this.usesEmbedded,
294
436
  };
295
437
  }
296
438
  }
439
+ /** The resource name the embedded face is drawn under. */
440
+ const EMBEDDED_FONT_KEY = 'fb';
297
441
  export class PdfDocument {
298
442
  pages = [];
299
443
  /** Collected across every page, so the UI can report it once at the end. */
300
444
  report = { dropped: new Set() };
445
+ embed = { used: new Map() };
446
+ /**
447
+ * Offer a face for everything WinAnsi cannot spell.
448
+ *
449
+ * Optional on purpose, and the whole document works without one — this is the
450
+ * difference between a Cyrillic paragraph and a row of '?', not between a PDF
451
+ * and no PDF. Must be set BEFORE anything is drawn, because a page splits its
452
+ * text between the two fonts as it draws.
453
+ */
454
+ embedFallbackFont(font) {
455
+ this.embed.font = font;
456
+ }
301
457
  addPage(width, height) {
302
- const page = new PdfPage(width, height, this.report);
458
+ const page = new PdfPage(width, height, this.report, this.embed);
303
459
  this.pages.push(page);
304
460
  return page;
305
461
  }
@@ -349,9 +505,68 @@ export class PdfDocument {
349
505
  `/Encoding /WinAnsiEncoding >>\n`);
350
506
  end();
351
507
  }
508
+ // The embedded face, written only when a page actually drew with it. An
509
+ // English document that happened to be converted by an app that offers a
510
+ // font still carries no font: five objects and 350 KB for nothing is not a
511
+ // cost to pay on the ordinary case.
512
+ const builtPages = this.pages.map((page) => page.build());
513
+ const embeddedFont = this.embed.font;
514
+ let embeddedId = null;
515
+ if (embeddedFont && builtPages.some((b) => b.embedded)) {
516
+ const fileId = alloc();
517
+ const descriptorId = alloc();
518
+ const descendantId = alloc();
519
+ const toUnicodeId = alloc();
520
+ embeddedId = alloc();
521
+ // ⚠️ `/Length1` is not decoration. For an uncompressed `/FontFile2` it is
522
+ // the same number as `/Length`, but it is REQUIRED, and a reader that
523
+ // finds it missing is entitled to reject the font — which shows up as a
524
+ // document whose Cyrillic is invisible rather than as an error.
525
+ begin(fileId);
526
+ push(`<< /Length ${embeddedFont.bytes.length} /Length1 ${embeddedFont.bytes.length} >>\nstream\n`);
527
+ push(embeddedFont.bytes);
528
+ push('\nendstream\n');
529
+ end();
530
+ begin(descriptorId);
531
+ push(`<< /Type /FontDescriptor /FontName /${embeddedFont.postScriptName} ` +
532
+ `/Flags ${embeddedFont.flags} ` +
533
+ `/FontBBox [${embeddedFont.bbox.map(num).join(' ')}] ` +
534
+ `/ItalicAngle ${num(embeddedFont.italicAngle)} ` +
535
+ `/Ascent ${num(embeddedFont.ascent)} /Descent ${num(embeddedFont.descent)} ` +
536
+ `/CapHeight ${num(embeddedFont.capHeight)} /StemV 80 ` +
537
+ `/FontFile2 ${fileId} 0 R >>\n`);
538
+ end();
539
+ // Only the glyphs this document used get a width. `/DW 1000` covers the
540
+ // rest, and the rest are never drawn.
541
+ const used = [...this.embed.used.keys()].sort((a, b) => a - b);
542
+ const widths = used
543
+ .map((glyph) => `${glyph} [${num(embeddedFont.advanceOf(glyph))}]`)
544
+ .join(' ');
545
+ begin(descendantId);
546
+ push(`<< /Type /Font /Subtype /CIDFontType2 /BaseFont /${embeddedFont.postScriptName} ` +
547
+ `/CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> ` +
548
+ `/FontDescriptor ${descriptorId} 0 R /DW 1000` +
549
+ (widths ? ` /W [${widths}]` : '') +
550
+ // CIDs ARE glyph indices under Identity-H, which is the whole reason
551
+ // this needs no subsetter and no glyph-name table.
552
+ ` /CIDToGIDMap /Identity >>\n`);
553
+ end();
554
+ const cmap = latin1(toUnicodeCMap(this.embed.used));
555
+ begin(toUnicodeId);
556
+ push(`<< /Length ${cmap.length} >>\nstream\n`);
557
+ push(cmap);
558
+ push('\nendstream\n');
559
+ end();
560
+ begin(embeddedId);
561
+ push(`<< /Type /Font /Subtype /Type0 /BaseFont /${embeddedFont.postScriptName} ` +
562
+ `/Encoding /Identity-H /DescendantFonts [${descendantId} 0 R] ` +
563
+ `/ToUnicode ${toUnicodeId} 0 R >>\n`);
564
+ end();
565
+ }
352
566
  const pageIds = [];
353
- for (const page of this.pages) {
354
- const built = page.build();
567
+ for (let index = 0; index < builtPages.length; index += 1) {
568
+ const built = builtPages[index];
569
+ const page = this.pages[index];
355
570
  const pageId = alloc();
356
571
  pageIds.push(pageId);
357
572
  const contentId = alloc();
@@ -359,6 +574,7 @@ export class PdfDocument {
359
574
  const linkIds = built.links.map(() => alloc());
360
575
  const fontResources = built.fonts
361
576
  .map((f) => `/${f} ${fontIds.get(f)} 0 R`)
577
+ .concat(built.embedded && embeddedId !== null ? [`/${EMBEDDED_FONT_KEY} ${embeddedId} 0 R`] : [])
362
578
  .join(' ');
363
579
  const xobjectResources = imageIds
364
580
  .map((id, i) => `/Im${i} ${id} 0 R`)
@@ -432,6 +648,58 @@ function num(value) {
432
648
  const fixed = value.toFixed(2);
433
649
  return fixed.replace(/\.?0+$/, '') || '0';
434
650
  }
651
+ /**
652
+ * Glyph indices as a hex string — how Identity-H text is written.
653
+ *
654
+ * Two bytes per glyph, big-endian. A literal `(...)` string cannot be used
655
+ * here: half the glyph ids in a real font contain a byte that would have to be
656
+ * escaped, and one missed escape shifts every glyph after it by a byte and
657
+ * turns the rest of the line into someone else's alphabet.
658
+ */
659
+ function hexStringFromGlyphs(glyphs) {
660
+ let out = '<';
661
+ for (const glyph of glyphs)
662
+ out += (glyph & 0xffff).toString(16).padStart(4, '0');
663
+ return out + '>';
664
+ }
665
+ /**
666
+ * The `/ToUnicode` CMap — what makes embedded text selectable and searchable.
667
+ *
668
+ * Without it a reader knows which glyph to DRAW and nothing about what it says,
669
+ * so copying a paragraph out of the PDF yields mojibake and Cmd-F finds
670
+ * nothing. The base-14 path gets this free from `/WinAnsiEncoding`; Identity-H
671
+ * gets it only because this is here.
672
+ *
673
+ * ⚠️ `beginbfchar` takes at most 100 entries per block — a hard limit in the
674
+ * spec, not a convention — so the list is chunked. A single 300-entry block is
675
+ * the classic way this comes out looking right in one reader and empty in
676
+ * another.
677
+ */
678
+ function toUnicodeCMap(used) {
679
+ const entries = [...used.entries()].sort((a, b) => a[0] - b[0]);
680
+ const head = '/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n' +
681
+ '/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> def\n' +
682
+ '/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n' +
683
+ '1 begincodespacerange\n<0000> <FFFF>\nendcodespacerange\n';
684
+ let body = '';
685
+ for (let i = 0; i < entries.length; i += 100) {
686
+ const chunk = entries.slice(i, i + 100);
687
+ body += `${chunk.length} beginbfchar\n`;
688
+ for (const [glyph, text] of chunk) {
689
+ body += `<${(glyph & 0xffff).toString(16).padStart(4, '0')}> <${utf16BeHex(text)}>\n`;
690
+ }
691
+ body += 'endbfchar\n';
692
+ }
693
+ return head + body + 'endcmap\nCMapName currentdict /CMap defineresource pop\nend\nend\n';
694
+ }
695
+ /** UTF-16BE hex, which is the only encoding a bfchar destination may use. */
696
+ function utf16BeHex(text) {
697
+ let out = '';
698
+ for (let i = 0; i < text.length; i += 1) {
699
+ out += text.charCodeAt(i).toString(16).padStart(4, '0');
700
+ }
701
+ return out;
702
+ }
435
703
  /** A PDF literal string from already-encoded WinAnsi bytes. */
436
704
  function pdfStringFromBytes(bytes) {
437
705
  let out = '(';
@@ -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"}