From b1c5ef9cccbc4c74ee621a19628670113fce5f2e Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Tue, 17 Dec 2013 00:19:31 +0100 Subject: [PATCH] Fix loading of fonts that are not referenced by an object identifier --- src/core/evaluator.js | 14 +++++++++++--- test/pdfs/.gitignore | 1 + test/pdfs/bug946506.pdf | Bin 0 -> 20555 bytes test/test_manifest.json | 10 ++++++++++ 4 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 test/pdfs/bug946506.pdf diff --git a/src/core/evaluator.js b/src/core/evaluator.js index e18c68a32..56f947c91 100644 --- a/src/core/evaluator.js +++ b/src/core/evaluator.js @@ -475,16 +475,24 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { return this.fontCache.get(fontRef); } - font = xref.fetchIfRef(fontRef); if (!isDict(font)) { return errorFont(); } - this.fontCache.put(fontRef, font); + // Workaround for bad PDF generators that doesn't reference fonts + // properly, i.e. by not using an object identifier. + // Check if the fontRef is a Dict (as opposed to a standard object), + // in which case we don't cache the font and instead reference it by + // fontName in font.loadedName below. + var fontRefIsDict = isDict(fontRef); + if (!fontRefIsDict) { + this.fontCache.put(fontRef, font); + } // keep track of each font we translated so the caller can // load them asynchronously before calling display on a page - font.loadedName = 'g_font_' + fontRef.num + '_' + fontRef.gen; + font.loadedName = 'g_font_' + (fontRefIsDict ? + fontName.replace(/\W/g, '') : (fontRef.num + '_' + fontRef.gen)); if (!font.translated) { var translated; diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index e5b382e9b..76685349d 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -61,3 +61,4 @@ !issue2099-1.pdf !issue3371.pdf !issue2956.pdf +!bug946506.pdf diff --git a/test/pdfs/bug946506.pdf b/test/pdfs/bug946506.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4c4c2786f7108b73090a205aca7d8040b58c4471 GIT binary patch literal 20555 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 JXyLxl<99xpGB^ML literal 0 HcmV?d00001 diff --git a/test/test_manifest.json b/test/test_manifest.json index 942f3d2a3..5a14c69ad 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -42,6 +42,16 @@ "type": "load", "about": "PDF with undefined stream length." }, + { "id": "bug946506", + "file": "pdfs/bug946506.pdf", + "md5": "c28911b5c31bdc337c2ce404c5971cfc", + "rounds": 1, + "link": false, + "firstPage": 1, + "lastPage": 1, + "type": "eq", + "about": "Fonts referenced only by name and not by an object identifier." + }, { "id": "issue3879", "file": "pdfs/issue3879.pdf", "md5": "1cd1f1c3271515a14e65ff2980e14663",