From ee50422227080448d58be2b2a6ac082825bc6ffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kai=20Pre=C3=9Fmar?= Date: Sat, 5 Sep 2026 12:01:09 +0200 Subject: [PATCH 1/2] fix: give AcroForm a font readers can resolve field text against pdfkit's initForm() always sets NeedAppearances, so a reader may need to regenerate a form field's appearance from its plain-text value at any time. Doing that requires resolving arbitrary characters to glyphs through the font referenced in the AcroForm's /DR and /DA resources. For a custom embedded font, that resource previously reused the same font object used in content streams: a subsetted Type0 font under /Encoding /Identity-H. Identity-H has no character encoding a reader can resolve on its own, and pdfkit's subsetter drops the font's cmap table entirely, since content streams address glyphs directly by ID. A reader regenerating a field's appearance therefore has no way to map the field's text to a glyph in that font, and silently falls back to a substitute font -- reproducible in Adobe Acrobat/Reader, though not in every viewer. Embed a second, dedicated font object for AcroForm use instead: the complete, un-subsetted font program under a standard /Encoding /WinAnsiEncoding, so a reader can look up any character itself. This font is not a subset, so it does not use the subset-tag BaseFont naming convention (a six-uppercase-letter prefix meaning "an arbitrary subset of the font named after the +"); reusing that tag previously gave both font objects an identical BaseFont name despite differing font programs, which caused Acrobat's "embedded font could not be extracted" warning during testing. The same FontFile2 stream was also missing the required /Length1 entry (the uncompressed program length), which triggered the same warning on its own before the naming was fixed. Fixes #1096 --- CHANGELOG.md | 2 + docs/forms.md | 10 +++ lib/font/afm.js | 6 +- lib/font/embedded.js | 159 ++++++++++++++++++++++++++++++++++++ lib/mixins/acroform.js | 17 +++- tests/unit/acroform.spec.js | 96 +++++++++++++++++++++- 6 files changed, 283 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f0a210ae..a63835a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ### Unreleased +- Fix AcroForm text fields with a custom embedded font rendering in the wrong font in readers (e.g. Adobe Acrobat/Reader) that regenerate a field's appearance from its value, by giving the AcroForm `/DR` and `/DA` resources their own complete, simply-encoded font instead of reusing the subsetted `Identity-H` font pdfkit's content streams address by glyph ID. Fixes #1096 + ### [v0.20.2] - 2026-08-29 - Fix bundlers and file tracers packing the ESM copies of the standard font metrics instead of the CommonJS ones the Node build actually loads, which left `Cannot find module` errors for every standard font at runtime, by resolving the internal `#standard-fonts/*` mapping to a single file under all conditions diff --git a/docs/forms.md b/docs/forms.md index 544eafb6..65500449 100644 --- a/docs/forms.md +++ b/docs/forms.md @@ -346,6 +346,16 @@ Some form documents may not need to generate appearances. This may be the case for text Form Annotations that initially have no value. This is not true for push button widget annotations. Please test +Because `NeedAppearances` asks the viewer to build a field's appearance from +its plain-text value at any time, the viewer needs to resolve that text to +glyphs on its own using the font in the AcroForm's `DR`/`DA` resources. When a +custom font is used, PDFKit embeds a dedicated, non-subsetted copy of that +font for this purpose (distinct from the subsetted, glyph-ID-addressed copy +used in page content), so a viewer can look up any character itself instead of +falling back to a substitute font. + + + ### Document JavaScript Many PDF Viewers, aside from Adobe Acrobat Reader, do not implement document diff --git a/lib/font/afm.js b/lib/font/afm.js index 53e72c66..f3a9f482 100644 --- a/lib/font/afm.js +++ b/lib/font/afm.js @@ -1,4 +1,8 @@ -const WIN_ANSI_MAP = { +// Maps Unicode code points to their WinAnsiEncoding code, for the block of +// codes (0x80-0x9F) where WinAnsiEncoding diverges from Latin-1/Unicode. +// Exported so other font embedders can build the inverse (code -> code point) +// mapping needed to describe a font with a standard /Encoding entry. +export const WIN_ANSI_MAP = { 402: 131, 8211: 150, 8212: 151, diff --git a/lib/font/embedded.js b/lib/font/embedded.js index 26921893..a1f00fa1 100644 --- a/lib/font/embedded.js +++ b/lib/font/embedded.js @@ -1,9 +1,30 @@ import PDFFont from '../font'; +import { WIN_ANSI_MAP } from './afm'; const toHex = function (num) { return `0000${num.toString(16)}`.slice(-4); }; +// Inverse of WIN_ANSI_MAP (code point -> WinAnsiEncoding code), for the one +// block (0x80-0x9F) where the two diverge; every other code between +// FIRST_WIN_ANSI_CHAR and LAST_WIN_ANSI_CHAR maps 1:1 to the same code point. +const WIN_ANSI_CODE_TO_UNICODE = Object.fromEntries( + Object.entries(WIN_ANSI_MAP).map(([codePoint, code]) => [ + code, + Number(codePoint), + ]), +); +const UNDEFINED_WIN_ANSI_CODES = new Set([129, 141, 143, 144, 157]); // unused slots in that block +const FIRST_WIN_ANSI_CHAR = 32; +const LAST_WIN_ANSI_CHAR = 255; + +function unicodeForWinAnsiCode(code) { + if (UNDEFINED_WIN_ANSI_CODES.has(code)) { + return null; + } + return WIN_ANSI_CODE_TO_UNICODE[code] ?? code; +} + class EmbeddedFont extends PDFFont { constructor(document, font, id) { super(); @@ -120,6 +141,43 @@ class EmbeddedFont extends PDFFont { return width * scale; } + /** + * Returns the PDFReference to use for this font in an AcroForm's /DR and + * /DA resources, embedding a dedicated font for that purpose the first + * time it's requested. + * + * This can't reuse `ref()`: that font is a Type0 composite font under + * `/Encoding /Identity-H`, subsetted down to only the glyphs used in + * content streams pdfkit writes itself, which address glyphs directly by + * glyph ID and therefore never need a `cmap` table (pdfkit's subsetter + * omits it). But pdfkit's `initForm()` always sets `NeedAppearances`, + * which asks the reader to regenerate a field's appearance from its + * plain-text value at any time -- and Identity-H gives it no character + * encoding to resolve that text against. Without a way to map field text + * to glyphs, readers such as Adobe Acrobat/Reader silently fall back to a + * substitute font (see foliojs/pdfkit#1096). The font `embedForAcroForm()` + * builds is a complete, non-subsetted, standard-encoding font instead, so + * a reader can resolve arbitrary field text against it on its own. + */ + acroFormRef() { + return this.acroFormDictionary != null + ? this.acroFormDictionary + : (this.acroFormDictionary = this.document.ref()); + } + + finalize() { + if (this.embedded) { + return; + } + if (this.dictionary != null) { + this.embed(); + } + if (this.acroFormDictionary != null) { + this.embedForAcroForm(); + } + this.embedded = true; + } + embed() { const isCFF = this.subset.cff != null; const fontFile = this.document.ref(); @@ -231,6 +289,107 @@ class EmbeddedFont extends PDFFont { return this.dictionary.end(); } + /** + * Embeds a second, standalone font for AcroForm use: a simple font + * describing the complete font program under a standard + * `/Encoding /WinAnsiEncoding`. See `acroFormRef()` for why this exists + * separately from `embed()`. + */ + embedForAcroForm() { + const isCFF = this.subset.cff != null; + const fontFile = this.document.ref(); + + // Embed the font untouched rather than a subset: a reader must be able + // to resolve *any* WinAnsiEncoding character a user later types into the + // field, not just the ones already drawn elsewhere in the document. + if (isCFF) { + fontFile.data.Subtype = 'OpenType'; + } else { + // Required for FontFile2 (spec 9.9, Table 127): the length in bytes of + // the uncompressed TrueType program. Without it, Acrobat's forms + // engine reports the font as one it "could not be extracted" when it + // loads it to regenerate this field's appearance. + fontFile.data.Length1 = this.font.stream.buffer.length; + } + fontFile.end(this.font.stream.buffer); + + const familyClass = + ((this.font['OS/2'] != null + ? this.font['OS/2'].sFamilyClass + : undefined) || 0) >> 8; + let flags = 0; + if (this.font.post.isFixedPitch) { + flags |= 1 << 0; + } + if (1 <= familyClass && familyClass <= 7) { + flags |= 1 << 1; + } + flags |= 1 << 5; // nonsymbolic: glyphs are looked up via /Encoding below + if (this.font.head.macStyle.italic) { + flags |= 1 << 6; + } + + // This font program isn't a subset, so, unlike `embed()`, its name must + // not use the subset-tag convention (a six-uppercase-letter prefix + // meaning "an arbitrary subset of the font named after the +", spec + // 9.6.4): reusing that tag previously gave both fonts the same + // `/BaseFont` name despite different font programs, which is what caused + // the same "could not be extracted" warning above. + const name = this.font.postscriptName?.replaceAll(' ', '_'); + + const { bbox } = this.font; + const descriptor = this.document.ref({ + Type: 'FontDescriptor', + FontName: name, + Flags: flags, + FontBBox: [ + bbox.minX * this.scale, + bbox.minY * this.scale, + bbox.maxX * this.scale, + bbox.maxY * this.scale, + ], + ItalicAngle: this.font.italicAngle, + Ascent: this.ascender, + Descent: this.descender, + CapHeight: (this.font.capHeight || this.font.ascent) * this.scale, + XHeight: (this.font.xHeight || 0) * this.scale, + StemV: 0, + }); + + if (isCFF) { + descriptor.data.FontFile3 = fontFile; + } else { + descriptor.data.FontFile2 = fontFile; + } + + descriptor.end(); + + const widths = []; + for (let code = FIRST_WIN_ANSI_CHAR; code <= LAST_WIN_ANSI_CHAR; code++) { + const codePoint = unicodeForWinAnsiCode(code); + const hasGlyph = + codePoint != null && this.font.hasGlyphForCodePoint(codePoint); + widths.push( + hasGlyph + ? this.font.glyphForCodePoint(codePoint).advanceWidth * this.scale + : 0, + ); + } + + this.acroFormDictionary.data = { + Type: 'Font', + Subtype: isCFF ? 'Type1' : 'TrueType', + BaseFont: name, + FirstChar: FIRST_WIN_ANSI_CHAR, + LastChar: LAST_WIN_ANSI_CHAR, + Widths: widths, + Encoding: 'WinAnsiEncoding', + FontDescriptor: descriptor, + }; + + return this.acroFormDictionary.end(); + } + // Maps the glyph ids encoded in the PDF back to unicode strings // Because of ligature substitutions and the like, there may be one or more // unicode characters represented by each glyph. diff --git a/lib/mixins/acroform.js b/lib/mixins/acroform.js index d283b1c4..2f1a5a3f 100644 --- a/lib/mixins/acroform.js +++ b/lib/mixins/acroform.js @@ -160,6 +160,15 @@ function mapFormat(options, pdfObject) { } } +// AcroForm's /DR and /DA resources need a font a reader can resolve +// arbitrary field text against on its own (see EmbeddedFont#acroFormRef for +// why); StandardFont has no such distinction, so it falls back to ref(). +function acroFormFontRef(font) { + return typeof font.acroFormRef === 'function' + ? font.acroFormRef() + : font.ref(); +} + export default { /** * Must call if adding AcroForms to a document. Must also call font() before @@ -173,7 +182,7 @@ export default { fonts: {}, defaultFont: this._font.name, }; - this._acroform.fonts[this._font.id] = this._font.ref(); + this._acroform.fonts[this._font.id] = acroFormFontRef(this._font); let data = { Fields: [], @@ -183,7 +192,7 @@ export default { Font: {}, }, }; - data.DR.Font[this._font.id] = this._font.ref(); + data.DR.Font[this._font.id] = acroFormFontRef(this._font); const AcroForm = this.ref(data); this._root.data.AcroForm = AcroForm; return this; @@ -341,7 +350,7 @@ export default { const { _acroform, _font } = this; // add current font to document-level AcroForm dict if necessary if (_acroform.fonts[_font.id] == null) { - _acroform.fonts[_font.id] = _font.ref(); + _acroform.fonts[_font.id] = acroFormFontRef(_font); } // add current font to field's resource dict (RD) if not the default acroform font @@ -351,7 +360,7 @@ export default { // Get the fontSize option. If not set use auto sizing const fontSize = options.fontSize || 0; - pdfObject.DR.Font[_font.id] = _font.ref(); + pdfObject.DR.Font[_font.id] = acroFormFontRef(_font); pdfObject.DA = new String(`/${_font.id} ${fontSize} Tf 0 g`); } }, diff --git a/tests/unit/acroform.spec.js b/tests/unit/acroform.spec.js index ac01fe6a..09ee9781 100644 --- a/tests/unit/acroform.spec.js +++ b/tests/unit/acroform.spec.js @@ -1,8 +1,33 @@ +import zlib from 'zlib'; import PDFDocument from '../../lib/document'; import PDFSecurity from '../../lib/security'; import { logData, joinTokens } from './helpers'; import PDFFontFactory from '../../lib/font_factory'; +// Returns the sfnt table tags present in a raw TrueType/OpenType font +// program, so a test can check whether a `cmap` table survived embedding. +function sfntTableTags(fontBytes) { + const numTables = fontBytes.readUInt16BE(4); + const tags = []; + for (let i = 0; i < numTables; i++) { + const offset = 12 + i * 16; + tags.push(fontBytes.toString('latin1', offset, offset + 4)); + } + return tags; +} + +// Returns the body (as a single binary string, stream bytes included) of the +// `n 0 obj ... endobj` entry logged by `logData`. +function objectBody(docData, n) { + const start = docData.indexOf(`${n} 0 obj`); + if (start === -1) return null; + const end = docData.indexOf('endobj', start); + return docData + .slice(start + 1, end) + .map((item) => (item instanceof Buffer ? item.toString('binary') : item)) + .join('\n'); +} + // manual mock for PDFSecurity to ensure stored id will be the same accross different systems PDFSecurity.generateFileID = () => { return Buffer.from('mocked-pdf-id'); @@ -63,7 +88,7 @@ describe('acroform', () => { test('init standard fonts', () => { const expected = [ - '12 0 obj', + '13 0 obj', joinTokens( '<<', '/FT', @@ -75,7 +100,7 @@ describe('acroform', () => { '/Font', '<<', '/F3', - '10 0 R', + '12 0 R', '>>', '>>', '/DA', @@ -417,4 +442,71 @@ describe('acroform', () => { } } }); + + // Regression test for https://github.com/foliojs/pdfkit/issues/1096: + // a custom embedded font applied to a form field rendered with the wrong + // font in readers (e.g. Adobe Acrobat/Reader) that regenerate the field's + // appearance from its value, even though the same font renders correctly + // for ordinary page text. + test('AcroForm uses a font a reader can resolve field text against on its own', () => { + const docData = logData(doc); + + doc.font('tests/fonts/Roboto-Regular.ttf'); + doc.initForm(); + doc.formText('field1', 10, 10, 200, 20, { value: 'Hello' }); + // Also draw with the same font in the page content, so the test proves + // the two usages embed independently rather than sharing one font object. + doc.text('Hello', 10, 100); + doc.end(); + + // Locate the AcroForm dict, and the font object its /DR references. + const acroFormIdx = docData.findIndex( + (item) => typeof item === 'string' && item.includes('/NeedAppearances'), + ); + expect(acroFormIdx).toBeGreaterThan(-1); + const drFontRef = docData[acroFormIdx].match( + /\/DR\s*<<\s*\/Font\s*<<\s*\/\S+\s+(\d+)\s+0\s+R/, + ); + expect(drFontRef).not.toBeNull(); + const acroFormFontBody = objectBody(docData, drFontRef[1]); + + // The AcroForm font must be a simple font under a standard encoding, not + // the Type0/Identity-H composite font pdfkit uses in content streams: + // Identity-H has no character encoding a reader can resolve on its own. + expect(acroFormFontBody).toContain('/Subtype /TrueType'); + expect(acroFormFontBody).toContain('/Encoding /WinAnsiEncoding'); + expect(acroFormFontBody).not.toContain('/Subtype /Type0'); + + // The font actually used to draw page text is a different object, + // untouched: still the subsetted Type0/Identity-H composite font, + // addressed by glyph ID rather than by a standard character encoding. + const pageFontRefIdx = docData.findIndex( + (item) => + typeof item === 'string' && + item.includes('/ProcSet') && + item.includes('/Font'), + ); + expect(pageFontRefIdx).toBeGreaterThan(-1); + const pageFontRef = docData[pageFontRefIdx].match(/\/F\d+ (\d+) 0 R/); + expect(pageFontRef[1]).not.toBe(drFontRef[1]); + const contentFontBody = objectBody(docData, pageFontRef[1]); + expect(contentFontBody).toContain('/Subtype /Type0'); + expect(contentFontBody).toContain('/Encoding /Identity-H'); + + // The whole point: the AcroForm font's embedded program must still carry + // a `cmap` table, so a reader has a way to map arbitrary field text to + // glyphs. pdfkit's normal subset omits `cmap` because it addresses + // glyphs directly by ID from content streams it authors itself. + const fontDescriptorRef = acroFormFontBody.match( + /\/FontDescriptor (\d+) 0 R/, + ); + const descriptorBody = objectBody(docData, fontDescriptorRef[1]); + const fontFileRef = descriptorBody.match(/\/FontFile2 (\d+) 0 R/); + const fontFileBody = objectBody(docData, fontFileRef[1]); + const streamMatch = fontFileBody.match( + /stream\r?\n([\s\S]*?)\r?\nendstream/, + ); + const fontBytes = zlib.inflateSync(Buffer.from(streamMatch[1], 'binary')); + expect(sfntTableTags(fontBytes)).toContain('cmap'); + }); }); From 56f3d12da3b484f11fdc5c10851ebf004cf2b2bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kai=20Pre=C3=9Fmar?= Date: Sat, 5 Sep 2026 15:48:07 +0200 Subject: [PATCH 2/2] fix(font): embed a CID-keyed AcroForm font for WOFF2/CFF sources too The AcroForm font this method builds must give a viewer a way to resolve field text to a glyph on its own, without relying on pdfkit's own subsetting. The previous fix satisfied that for TrueType sources by embedding a simple font with /Encoding /WinAnsiEncoding built from `this.font.stream.buffer`, but that buffer is the font's original file bytes -- for a WOFF/WOFF2 source, a compressed container rather than a valid standalone font program, so Acrobat still reported the font as one it "could not be extracted" for any font actually loaded from a .woff2 file (as most web-sourced fonts are). Route the font program through fontkit's ordinary subset encoder instead, including every glyph so the reader can still resolve any character. That encoder always normalizes its input into a valid TrueType/CFF program, but also always produces CID-keyed, cmap-less output -- incompatible with a simple font's /Encoding /WinAnsiEncoding. Rebuild the AcroForm font as a composite (Type0/CID) font instead, addressed through a custom WinAnsi-code-to-glyph-id CMap built from the font's own cmap (replacing the usual /Identity-H, which only a content-stream author who already knows the glyph ids can use) -- this works uniformly for both TrueType and CFF sources. Add a CFF-flavored regression test (tests/fonts/Montserrat-Bold.otf) alongside the existing TrueType one, since the CFF/CIDFontType0 path was never exercised by the original fix. Co-Authored-By: Claude Sonnet 5 --- lib/font/embedded.js | 162 +++++++++++++++++++++++++------- tests/fonts/Montserrat-Bold.otf | Bin 0 -> 235192 bytes tests/unit/acroform.spec.js | 118 +++++++++++++++++------ 3 files changed, 217 insertions(+), 63 deletions(-) create mode 100644 tests/fonts/Montserrat-Bold.otf diff --git a/lib/font/embedded.js b/lib/font/embedded.js index a1f00fa1..a9c5c09f 100644 --- a/lib/font/embedded.js +++ b/lib/font/embedded.js @@ -290,28 +290,47 @@ class EmbeddedFont extends PDFFont { } /** - * Embeds a second, standalone font for AcroForm use: a simple font - * describing the complete font program under a standard - * `/Encoding /WinAnsiEncoding`. See `acroFormRef()` for why this exists - * separately from `embed()`. + * Embeds a second, standalone font for AcroForm use: a composite font + * holding every glyph, addressed through a custom WinAnsiEncoding-to-glyph + * CMap instead of the usual `/Identity-H`. See `acroFormRef()` for why + * this exists separately from `embed()`, and `winAnsiToGidCmap()` for why + * it's a composite font with a custom `/Encoding` rather than a simple + * font with `/Encoding /WinAnsiEncoding`. */ embedForAcroForm() { const isCFF = this.subset.cff != null; - const fontFile = this.document.ref(); - // Embed the font untouched rather than a subset: a reader must be able - // to resolve *any* WinAnsiEncoding character a user later types into the - // field, not just the ones already drawn elsewhere in the document. + // Build a subset that includes every glyph rather than embedding the + // font's own program buffer untouched: a reader must be able to resolve + // *any* character a user later types into the field, not just the ones + // already drawn elsewhere in the document, so it can't be a subset in + // pdfkit's usual sense. This still goes through the ordinary subset + // encoder (not the font's raw bytes) because the source font may be a + // WOFF/WOFF2 file, whose raw bytes are a compressed container rather + // than a valid standalone TrueType/CFF program; fontkit's subset encoder + // already normalizes any source format into one. + // + // Because every glyph is included in ascending order, the subset's own + // renumbering (fontkit's `Subset#includeGlyph`) assigns each glyph the + // same id it already had in `this.font`, so the ids used below to build + // the encoding and widths still apply directly to this font program. + const fullSubset = this.font.createSubset(); + for (let gid = 0; gid < this.font.numGlyphs; gid++) { + fullSubset.includeGlyph(gid); + } + const fontProgram = fullSubset.encode(); + + const fontFile = this.document.ref(); if (isCFF) { - fontFile.data.Subtype = 'OpenType'; + fontFile.data.Subtype = 'CIDFontType0C'; } else { // Required for FontFile2 (spec 9.9, Table 127): the length in bytes of // the uncompressed TrueType program. Without it, Acrobat's forms // engine reports the font as one it "could not be extracted" when it // loads it to regenerate this field's appearance. - fontFile.data.Length1 = this.font.stream.buffer.length; + fontFile.data.Length1 = fontProgram.length; } - fontFile.end(this.font.stream.buffer); + fontFile.end(fontProgram); const familyClass = ((this.font['OS/2'] != null @@ -324,17 +343,19 @@ class EmbeddedFont extends PDFFont { if (1 <= familyClass && familyClass <= 7) { flags |= 1 << 1; } - flags |= 1 << 5; // nonsymbolic: glyphs are looked up via /Encoding below + flags |= 1 << 2; // assume the font uses non-latin characters, as embed() does if (this.font.head.macStyle.italic) { flags |= 1 << 6; } - // This font program isn't a subset, so, unlike `embed()`, its name must - // not use the subset-tag convention (a six-uppercase-letter prefix - // meaning "an arbitrary subset of the font named after the +", spec - // 9.6.4): reusing that tag previously gave both fonts the same + // This font program isn't a subset in pdfkit's usual sense (it holds + // every glyph, not just the ones used so far), so, unlike `embed()`, its + // name must not use the subset-tag convention (a six-uppercase-letter + // prefix meaning "an arbitrary subset of the font named after the +", + // spec 9.6.4). Reusing that tag previously gave both fonts the same // `/BaseFont` name despite different font programs, which is what caused - // the same "could not be extracted" warning above. + // Acrobat to report the font this method builds as one it "could not be + // extracted". const name = this.font.postscriptName?.replaceAll(' ', '_'); const { bbox } = this.font; @@ -364,32 +385,109 @@ class EmbeddedFont extends PDFFont { descriptor.end(); + // One width per glyph id, matching the font program above (which holds + // every glyph, not only the WinAnsiEncoding-representable ones). const widths = []; - for (let code = FIRST_WIN_ANSI_CHAR; code <= LAST_WIN_ANSI_CHAR; code++) { - const codePoint = unicodeForWinAnsiCode(code); - const hasGlyph = - codePoint != null && this.font.hasGlyphForCodePoint(codePoint); - widths.push( - hasGlyph - ? this.font.glyphForCodePoint(codePoint).advanceWidth * this.scale - : 0, - ); + for (let gid = 0; gid < this.font.numGlyphs; gid++) { + widths.push(this.font.getGlyph(gid).advanceWidth * this.scale); } - this.acroFormDictionary.data = { + const descendantFontData = { Type: 'Font', - Subtype: isCFF ? 'Type1' : 'TrueType', + Subtype: isCFF ? 'CIDFontType0' : 'CIDFontType2', BaseFont: name, - FirstChar: FIRST_WIN_ANSI_CHAR, - LastChar: LAST_WIN_ANSI_CHAR, - Widths: widths, - Encoding: 'WinAnsiEncoding', + CIDSystemInfo: { + Registry: new String('Adobe'), + Ordering: new String('Identity'), + Supplement: 0, + }, FontDescriptor: descriptor, + W: [0, widths], + }; + if (!isCFF) { + descendantFontData.CIDToGIDMap = 'Identity'; + } + + const descendantFont = this.document.ref(descendantFontData); + descendantFont.end(); + + this.acroFormDictionary.data = { + Type: 'Font', + Subtype: 'Type0', + BaseFont: name, + Encoding: this.winAnsiToGidCmap(), + DescendantFonts: [descendantFont], }; return this.acroFormDictionary.end(); } + /** + * Builds an embedded CMap mapping each single-byte WinAnsiEncoding code to + * the id of the glyph it represents (which are the same numbers as CIDs + * here, see `embedForAcroForm()`), for use as that method's Type0 font's + * `/Encoding` in place of a standard name such as `/Identity-H`. + * + * `Identity-H` only works when the content stream author already knows + * which glyph id corresponds to each character, which is exactly the + * capability a reader regenerating a field's appearance from its + * plain-text value doesn't have -- and fontkit's subset encoder never + * retains the font's own cmap or glyph-name tables that a reader could + * otherwise have used, no matter how many glyphs a subset includes + * (composite fonts, which is all pdfkit ever produces elsewhere, never + * need them, so the encoder doesn't build them). This gives a reader a + * character encoding to resolve field text against on its own anyway, + * without depending on either. + */ + winAnsiToGidCmap() { + const cmap = this.document.ref(); + cmap.data.Type = 'CMap'; + + const entries = []; + for (let code = FIRST_WIN_ANSI_CHAR; code <= LAST_WIN_ANSI_CHAR; code++) { + const codePoint = unicodeForWinAnsiCode(code); + if (codePoint == null || !this.font.hasGlyphForCodePoint(codePoint)) { + continue; + } + const gid = this.font.glyphForCodePoint(codePoint).id; + entries.push(`<${code.toString(16).padStart(2, '0')}> ${gid}`); + } + + const chunkSize = 100; + const chunks = Math.ceil(entries.length / chunkSize); + const ranges = []; + for (let i = 0; i < chunks; i++) { + const start = i * chunkSize; + const end = Math.min((i + 1) * chunkSize, entries.length); + ranges.push( + `${end - start} begincidchar\n${entries.slice(start, end).join('\n')}\nendcidchar`, + ); + } + + cmap.end(`\ +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo << + /Registry (Adobe) + /Ordering (Identity) + /Supplement 0 +>> def +/CMapName /Adobe-Identity-WinAnsi def +/CMapType 1 def +1 begincodespacerange +<20> +endcodespacerange +${ranges.join('\n')} +endcmap +CMapName currentdict /CMap defineresource pop +end +end\ +`); + + return cmap; + } + // Maps the glyph ids encoded in the PDF back to unicode strings // Because of ligature substitutions and the like, there may be one or more // unicode characters represented by each glyph. diff --git a/tests/fonts/Montserrat-Bold.otf b/tests/fonts/Montserrat-Bold.otf new file mode 100644 index 0000000000000000000000000000000000000000..cdfb83df2f2f621d232b38ea40aaa1582c91e0e5 GIT binary patch literal 235192 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 literal 0 HcmV?d00001 diff --git a/tests/unit/acroform.spec.js b/tests/unit/acroform.spec.js index 09ee9781..5a491ebe 100644 --- a/tests/unit/acroform.spec.js +++ b/tests/unit/acroform.spec.js @@ -4,18 +4,6 @@ import PDFSecurity from '../../lib/security'; import { logData, joinTokens } from './helpers'; import PDFFontFactory from '../../lib/font_factory'; -// Returns the sfnt table tags present in a raw TrueType/OpenType font -// program, so a test can check whether a `cmap` table survived embedding. -function sfntTableTags(fontBytes) { - const numTables = fontBytes.readUInt16BE(4); - const tags = []; - for (let i = 0; i < numTables; i++) { - const offset = 12 + i * 16; - tags.push(fontBytes.toString('latin1', offset, offset + 4)); - } - return tags; -} - // Returns the body (as a single binary string, stream bytes included) of the // `n 0 obj ... endobj` entry logged by `logData`. function objectBody(docData, n) { @@ -470,16 +458,17 @@ describe('acroform', () => { expect(drFontRef).not.toBeNull(); const acroFormFontBody = objectBody(docData, drFontRef[1]); - // The AcroForm font must be a simple font under a standard encoding, not - // the Type0/Identity-H composite font pdfkit uses in content streams: - // Identity-H has no character encoding a reader can resolve on its own. - expect(acroFormFontBody).toContain('/Subtype /TrueType'); - expect(acroFormFontBody).toContain('/Encoding /WinAnsiEncoding'); - expect(acroFormFontBody).not.toContain('/Subtype /Type0'); + // The AcroForm font is a composite font, like the one pdfkit uses in + // content streams, but addressed through a custom CMap instead of + // `/Identity-H`: Identity-H has no character encoding a reader could + // resolve on its own, since it only works when the content stream + // author (pdfkit itself) already knows which glyph id corresponds to + // each character. + expect(acroFormFontBody).toContain('/Subtype /Type0'); + expect(acroFormFontBody).not.toContain('/Encoding /Identity-H'); // The font actually used to draw page text is a different object, - // untouched: still the subsetted Type0/Identity-H composite font, - // addressed by glyph ID rather than by a standard character encoding. + // untouched: still the subsetted Type0/Identity-H composite font. const pageFontRefIdx = docData.findIndex( (item) => typeof item === 'string' && @@ -493,20 +482,87 @@ describe('acroform', () => { expect(contentFontBody).toContain('/Subtype /Type0'); expect(contentFontBody).toContain('/Encoding /Identity-H'); - // The whole point: the AcroForm font's embedded program must still carry - // a `cmap` table, so a reader has a way to map arbitrary field text to - // glyphs. pdfkit's normal subset omits `cmap` because it addresses - // glyphs directly by ID from content streams it authors itself. - const fontDescriptorRef = acroFormFontBody.match( - /\/FontDescriptor (\d+) 0 R/, + // The whole point: the AcroForm font's /Encoding must be a custom CMap a + // reader can use to resolve arbitrary WinAnsiEncoding field text to a + // glyph on its own -- built from `this.font`'s own character coverage, + // not from whatever `this.subset` (the font used for the page text + // above) happens to already include. + const encodingRef = acroFormFontBody.match(/\/Encoding (\d+) 0 R/); + expect(encodingRef).not.toBeNull(); + const cmapObjectBody = objectBody(docData, encodingRef[1]); + expect(cmapObjectBody).toContain('/Type /CMap'); + const cmapStreamMatch = cmapObjectBody.match( + /stream\r?\n([\s\S]*?)\r?\nendstream/, ); - const descriptorBody = objectBody(docData, fontDescriptorRef[1]); - const fontFileRef = descriptorBody.match(/\/FontFile2 (\d+) 0 R/); + const cmapBody = zlib + .inflateSync(Buffer.from(cmapStreamMatch[1], 'binary')) + .toString('latin1'); + expect(cmapBody).toContain('begincidchar'); + // 'H' (0x48) is in "Hello", drawn as page content above, but WinAnsi code + // 0x21 ('!') never appears anywhere in this test -- the CMap must cover + // it anyway, since it isn't built from the glyphs used so far. + expect(cmapBody).toMatch(/<48> \d+/); + expect(cmapBody).toMatch(/<21> \d+/); + }); + + // Same regression as above, but for a CFF-flavored font (OpenType/CFF + // rather than TrueType). fontkit's CFF subsetter always emits CID-keyed, + // nameless output, and a naive "subset then embed" approach still leaves + // the AcroForm font unreadable by a viewer -- the composite font with a + // custom WinAnsi CMap must work for this font format too, embedded as + // `/FontFile3 /Subtype /CIDFontType0C` rather than `/FontFile2`. + test('AcroForm resolves field text for a CFF-flavored font too', () => { + const docData = logData(doc); + + doc.font('tests/fonts/Montserrat-Bold.otf'); + doc.initForm(); + doc.formText('field1', 10, 10, 200, 20, { value: 'Hello' }); + doc.text('Hello', 10, 100); + doc.end(); + + const acroFormIdx = docData.findIndex( + (item) => typeof item === 'string' && item.includes('/NeedAppearances'), + ); + expect(acroFormIdx).toBeGreaterThan(-1); + const drFontRef = docData[acroFormIdx].match( + /\/DR\s*<<\s*\/Font\s*<<\s*\/\S+\s+(\d+)\s+0\s+R/, + ); + expect(drFontRef).not.toBeNull(); + const acroFormFontBody = objectBody(docData, drFontRef[1]); + + expect(acroFormFontBody).toContain('/Subtype /Type0'); + expect(acroFormFontBody).not.toContain('/Encoding /Identity-H'); + + // Descendant font must be CIDFontType0/CIDFontType0C, not the + // TrueType-only CIDFontType2/FontFile2 path. + const descendantRef = acroFormFontBody.match( + /\/DescendantFonts\s*\[\s*(\d+)\s+0\s+R/, + ); + expect(descendantRef).not.toBeNull(); + const descendantBody = objectBody(docData, descendantRef[1]); + expect(descendantBody).toContain('/Subtype /CIDFontType0'); + expect(descendantBody).not.toContain('/CIDToGIDMap'); + + const descriptorRef = descendantBody.match(/\/FontDescriptor (\d+) 0 R/); + expect(descriptorRef).not.toBeNull(); + const descriptorBody = objectBody(docData, descriptorRef[1]); + const fontFileRef = descriptorBody.match(/\/FontFile3 (\d+) 0 R/); + expect(fontFileRef).not.toBeNull(); const fontFileBody = objectBody(docData, fontFileRef[1]); - const streamMatch = fontFileBody.match( + expect(fontFileBody).toContain('/Subtype /CIDFontType0C'); + + const encodingRef = acroFormFontBody.match(/\/Encoding (\d+) 0 R/); + expect(encodingRef).not.toBeNull(); + const cmapObjectBody = objectBody(docData, encodingRef[1]); + expect(cmapObjectBody).toContain('/Type /CMap'); + const cmapStreamMatch = cmapObjectBody.match( /stream\r?\n([\s\S]*?)\r?\nendstream/, ); - const fontBytes = zlib.inflateSync(Buffer.from(streamMatch[1], 'binary')); - expect(sfntTableTags(fontBytes)).toContain('cmap'); + const cmapBody = zlib + .inflateSync(Buffer.from(cmapStreamMatch[1], 'binary')) + .toString('latin1'); + expect(cmapBody).toContain('begincidchar'); + expect(cmapBody).toMatch(/<48> \d+/); + expect(cmapBody).toMatch(/<21> \d+/); }); });