diff --git a/src/fonts.js b/src/fonts.js index 500ef8780..6ef1970ed 100644 --- a/src/fonts.js +++ b/src/fonts.js @@ -1958,6 +1958,19 @@ var Font = (function FontClosure() { glyphsRemoved++; } + // checking if it's a "true" symbolic font + if (this.isSymbolicFont) { + var minUnicode = 0xFFFF, maxUnicode = 0; + for (var i = 0, ii = glyphs.length; i < ii; i++) { + var unicode = glyphs[i].unicode; + minUnicode = Math.min(minUnicode, unicode); + maxUnicode = Math.max(maxUnicode, unicode); + } + // high byte must be the same for min and max unicodes + if ((maxUnicode & 0xFF00) != (minUnicode & 0xFF00)) + this.isSymbolicFont = false; + } + // heuristics: if removed more than 2 glyphs encoding WinAnsiEncoding // does not set properly if (glyphsRemoved > 2) { diff --git a/test/pdfs/preistabelle.pdf.link b/test/pdfs/preistabelle.pdf.link new file mode 100644 index 000000000..f48f8565c --- /dev/null +++ b/test/pdfs/preistabelle.pdf.link @@ -0,0 +1 @@ +http://www.fyve.de/downloads/Preistabelle_FYVE_Oktober_2010.pdf diff --git a/test/test_manifest.json b/test/test_manifest.json index 73aa77cd9..92b50d9ed 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -480,6 +480,14 @@ "link": true, "type": "eq" }, + { "id": "preistabelle", + "file": "pdfs/preistabelle.pdf", + "md5": "d2f0b2086160d4f3d325c79a5dc1fb4d", + "rounds": 1, + "pageLimit": 2, + "link": true, + "type": "eq" + }, { "id": "issue925", "file": "pdfs/issue925.pdf", "md5": "f58fe943090aff89dcc8e771bc0db4c2",