diff --git a/src/core/evaluator.js b/src/core/evaluator.js index 53b3d2d13..8d999d475 100644 --- a/src/core/evaluator.js +++ b/src/core/evaluator.js @@ -1193,7 +1193,6 @@ class PartialEvaluator { }); }; - const xref = this.xref; let fontRef; if (font) { // Loading by ref. @@ -1216,7 +1215,7 @@ class PartialEvaluator { return this.fontCache.get(fontRef); } - font = xref.fetchIfRef(fontRef); + font = this.xref.fetchIfRef(fontRef); } if (!(font instanceof Dict)) { @@ -1253,9 +1252,6 @@ class PartialEvaluator { const fontRefIsRef = fontRef instanceof Ref; let fontID; - if (fontRefIsRef) { - fontID = `f${fontRef.toString()}`; - } if (hash && descriptor instanceof Dict) { const fontAliases = (descriptor.fontAliases ||= Object.create(null)); @@ -1276,7 +1272,13 @@ class PartialEvaluator { fontAliases[hash].aliasRef = fontRef; } fontID = fontAliases[hash].fontID; + } else { + fontID = this.idFactory.createFontId(); } + assert( + fontID?.startsWith("f"), + 'The "fontID" must be (correctly) defined.' + ); // Workaround for bad PDF generators that reference fonts incorrectly, // where `fontRef` is a `Dict` rather than a `Ref` (fixes bug946506.pdf). @@ -1296,16 +1298,9 @@ class PartialEvaluator { if (fontRefIsRef) { this.fontCache.put(fontRef, fontCapability.promise); } else { - if (!fontID) { - fontID = this.idFactory.createFontId(); - } font.cacheKey = `cacheKey_${fontID}`; this.fontCache.put(font.cacheKey, fontCapability.promise); } - assert( - fontID?.startsWith("f"), - 'The "fontID" must be (correctly) defined.' - ); // Keep track of each font we translated so the caller can // load them asynchronously before calling display on a page.