diff --git a/src/core/fonts.js b/src/core/fonts.js index cd9c34f46..b04fbdc57 100644 --- a/src/core/fonts.js +++ b/src/core/fonts.js @@ -3226,6 +3226,15 @@ var Font = (function FontClosure() { * PDF spec */ function readCmapTable(cmap, font, isSymbolicFont, hasEncoding) { + if (!cmap) { + warn('No cmap table available.'); + return { + platformId: -1, + encodingId: -1, + mappings: [], + hasShortCmap: false + }; + } var segment; var start = (font.start ? font.start : 0) + cmap.offset; font.pos = start; diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 7bad8e6b0..cd4ec0205 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -2,6 +2,7 @@ *.error !tracemonkey.pdf +!TrueType_without_cmap.pdf !franz.pdf !franz_2.pdf !xref_command_missing.pdf diff --git a/test/pdfs/TrueType_without_cmap.pdf b/test/pdfs/TrueType_without_cmap.pdf new file mode 100644 index 000000000..0cfad2da8 Binary files /dev/null and b/test/pdfs/TrueType_without_cmap.pdf differ diff --git a/test/test_manifest.json b/test/test_manifest.json index 825b5c8c6..c40cfcd43 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -1196,6 +1196,13 @@ "rounds": 1, "type": "eq" }, + { "id": "TrueType_without_cmap", + "file": "pdfs/TrueType_without_cmap.pdf", + "md5": "afca8bb11f2e1f7298b4e5dd85785fb0", + "link": false, + "rounds": 1, + "type": "eq" + }, { "id": "issue3323", "file": "pdfs/issue3323.pdf", "md5": "1a14ff574013caeafa9d598269988764",