diff --git a/src/core/fonts.js b/src/core/fonts.js index 43f7df8dab61d..7f62283eabafe 100644 --- a/src/core/fonts.js +++ b/src/core/fonts.js @@ -1353,6 +1353,13 @@ var Font = (function FontClosure() { var offset = font.getInt32() >>> 0; var useTable = false; + // Sometimes there are multiple of the same type of table. Default + // to choosing the first table and skip the rest. + if (potentialTable && potentialTable.platformId === platformId && + potentialTable.encodingId === encodingId) { + continue; + } + if (platformId === 0 && encodingId === 0) { useTable = true; // Continue the loop since there still may be a higher priority @@ -2393,11 +2400,9 @@ var Font = (function FontClosure() { if (cmapMappings[i].charCode !== unicodeOrCharCode) { continue; } - if (hasGlyph(cmapMappings[i].glyphId)) { - charCodeToGlyphId[charCode] = cmapMappings[i].glyphId; - found = true; - break; - } + charCodeToGlyphId[charCode] = cmapMappings[i].glyphId; + found = true; + break; } if (!found && properties.glyphNames) { // Try to map using the post table. diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 9dc334de0c4af..0e0cd9a46bd04 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -56,6 +56,7 @@ !issue8480.pdf !issue8570.pdf !issue8697.pdf +!issue8707.pdf !bad-PageLabels.pdf !filled-background.pdf !ArabicCIDTrueType.pdf diff --git a/test/pdfs/issue8707.pdf b/test/pdfs/issue8707.pdf new file mode 100644 index 0000000000000..ffc5a3d6ad2fc Binary files /dev/null and b/test/pdfs/issue8707.pdf differ diff --git a/test/test_manifest.json b/test/test_manifest.json index b33f30b102e4a..d4d6aec6f4aae 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -682,6 +682,13 @@ "link": false, "type": "eq" }, + { "id": "issue8707", + "file": "pdfs/issue8707.pdf", + "md5": "d3dc670adde9ec9fb82c974027033029", + "rounds": 1, + "link": false, + "type": "eq" + }, { "id": "issue5509", "file": "pdfs/issue5509.pdf", "md5": "1975ef8db7355b1d691bc79d0749574b",