From 32eace043bdf55ea3ad2d2b5d8cb8cb125a3c2c7 Mon Sep 17 00:00:00 2001 From: Brendan Dahl Date: Fri, 4 Jan 2019 15:13:13 -0800 Subject: [PATCH] Fix reading number of HTMX metrics. The length of the HHEA table can be incorrect, so it is better to read the number of metrics offset from beginning of table instead. --- src/core/fonts.js | 14 +++++++++++++- test/pdfs/.gitignore | 1 + test/pdfs/issue10402.pdf | Bin 0 -> 20955 bytes test/test_manifest.json | 6 ++++++ 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 test/pdfs/issue10402.pdf diff --git a/src/core/fonts.js b/src/core/fonts.js index febbf21c7..d72ed61e8 100644 --- a/src/core/fonts.js +++ b/src/core/fonts.js @@ -1613,7 +1613,19 @@ var Font = (function FontClosure() { } font.pos = (font.start ? font.start : 0) + header.offset; - font.pos += header.length - 2; + font.pos += 4; // version + font.pos += 2; // ascent + font.pos += 2; // descent + font.pos += 2; // linegap + font.pos += 2; // adv_width_max + font.pos += 2; // min_sb1 + font.pos += 2; // min_sb2 + font.pos += 2; // max_extent + font.pos += 2; // caret_slope_rise + font.pos += 2; // caret_slope_run + font.pos += 2; // caret_offset + font.pos += 8; // reserved + font.pos += 2; // format var numOfMetrics = font.getUint16(); if (numOfMetrics > numGlyphs) { diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 152b463af..58c294e31 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -125,6 +125,7 @@ !issue6541.pdf !issue2948.pdf !issue6231_1.pdf +!issue10402.pdf !issue7074_reduced.pdf !issue6413.pdf !issue4630.pdf diff --git a/test/pdfs/issue10402.pdf b/test/pdfs/issue10402.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f03c3a404f888feafa63d55db45007a9606b5c01 GIT binary patch literal 20955 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 C(+b!C literal 0 HcmV?d00001 diff --git a/test/test_manifest.json b/test/test_manifest.json index 4c78bfcd9..e88746345 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -3429,6 +3429,12 @@ "type": "eq", "about": "True type font with encoding dict with no base encoding but with differences." }, + { "id": "issue10402", + "file": "pdfs/issue10402.pdf", + "md5": "7936bd34d7c0aebd0a864b5aa98aa1b4", + "rounds": 1, + "type": "eq" + }, { "id": "issue3064-text", "file": "pdfs/issue3064.pdf", "md5": "0307415b7d69b13acaf8bd4285d9544b",