From b918df3547ef89815552bf1c8aeb8180173e25b9 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Mon, 28 Jul 2014 18:34:41 +0200 Subject: [PATCH 1/2] Re-factor heuristics to recognize unknown glyphs for |toUnicode| --- src/core/fonts.js | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/src/core/fonts.js b/src/core/fonts.js index 78f1d66e046bf..b4ab8185914b9 100644 --- a/src/core/fonts.js +++ b/src/core/fonts.js @@ -4310,26 +4310,30 @@ var Font = (function FontClosure() { var glyphName = encoding[charcode]; // b) Look up the character name in the Adobe Glyph List (see the // Bibliography) to obtain the corresponding Unicode value. - if (glyphName === '' || !(glyphName in GlyphsUnicode)) { + if (glyphName === '') { + continue; + } else if (GlyphsUnicode[glyphName] === undefined) { // (undocumented) c) Few heuristics to recognize unknown glyphs // NOTE: Adobe Reader does not do this step, but OSX Preview does - var code; - // Gxx glyph - if (glyphName.length === 3 && - glyphName[0] === 'G' && - (code = parseInt(glyphName.substr(1), 16))) { - toUnicode[charcode] = String.fromCharCode(code); - } - // g00xx glyph - if (glyphName.length === 5 && - glyphName[0] === 'g' && - (code = parseInt(glyphName.substr(1), 16))) { - toUnicode[charcode] = String.fromCharCode(code); + var code = 0; + switch (glyphName[0]) { + case 'G': // Gxx glyph + if (glyphName.length === 3) { + code = parseInt(glyphName.substr(1), 16); + } + break; + case 'g': // g00xx glyph + if (glyphName.length === 5) { + code = parseInt(glyphName.substr(1), 16); + } + break; + case 'C': // Cddd glyph + if (glyphName.length >= 3) { + code = +glyphName.substr(1); + } + break; } - // Cddd glyph - if (glyphName.length >= 3 && - glyphName[0] === 'C' && - (code = +glyphName.substr(1))) { + if (code) { toUnicode[charcode] = String.fromCharCode(code); } continue; From 8ecbb4da05272519572b96b6ebe818ae4f80ad42 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Mon, 28 Jul 2014 18:41:47 +0200 Subject: [PATCH 2/2] Adjust the heuristics to recognize more cases of unknown glyphs for |toUnicode| (issue 5070) --- src/core/fonts.js | 14 ++++++++++++++ test/pdfs/.gitignore | 1 + test/pdfs/issue5070.pdf | Bin 0 -> 34369 bytes test/test_manifest.json | 7 +++++++ 4 files changed, 22 insertions(+) create mode 100644 test/pdfs/issue5070.pdf diff --git a/src/core/fonts.js b/src/core/fonts.js index b4ab8185914b9..76b4eac1ec271 100644 --- a/src/core/fonts.js +++ b/src/core/fonts.js @@ -4300,6 +4300,7 @@ var Font = (function FontClosure() { if (!properties.composite /* is simple font */) { toUnicode = []; var encoding = properties.defaultEncoding.slice(); + var baseEncodingName = properties.baseEncodingName; // Merge in the differences array. var differences = properties.differences; for (charcode in differences) { @@ -4328,12 +4329,25 @@ var Font = (function FontClosure() { } break; case 'C': // Cddd glyph + case 'c': // cddd glyph if (glyphName.length >= 3) { code = +glyphName.substr(1); } break; } if (code) { + // If |baseEncodingName| is one the predefined encodings, + // and |code| equals |charcode|, using the glyph defined in the + // baseEncoding seems to yield a better |toUnicode| mapping + // (fixes issue 5070). + if (baseEncodingName && code === +charcode) { + var baseEncoding = Encodings[baseEncodingName]; + if (baseEncoding && (glyphName = baseEncoding[charcode])) { + toUnicode[charcode] = + String.fromCharCode(GlyphsUnicode[glyphName]); + continue; + } + } toUnicode[charcode] = String.fromCharCode(code); } continue; diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 77da22580393d..f46810239f8cd 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -56,6 +56,7 @@ !issue925.pdf !issue4668.pdf !issue5039.pdf +!issue5070.pdf !gradientfill.pdf !bug903856.pdf !bug850854.pdf diff --git a/test/pdfs/issue5070.pdf b/test/pdfs/issue5070.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fe77923ca42e504fe6586ae89232497fb5beb37c GIT binary patch literal 34369 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