From e963971244b96b9fe555df381016cae8f680dc5d Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Tue, 20 Dec 2016 16:42:15 +0100 Subject: [PATCH] Further adjust the heuristics used to detect OpenType font files with CFF data, to ensure that all Type0 fonts are handled the same way regardless of font Subtype (issue 7901) Changing this particular code makes me somewhat nervous about regressions, since PR 5770 necessitated the follow-up PR 6270. However, the patch passes all tests added in those PRs (and obviously all other tests). Furthermore, I've manually checked all the issues/bugs referenced in PRs 5770 and 6270 without finding any issues. **Please note:** This patch fixes *only* the font bug, not the SVG conversion, present on pages two and three of the PDF file in issue 7901. --- src/core/fonts.js | 4 ++-- test/pdfs/.gitignore | 1 + test/pdfs/issue7901.pdf | Bin 0 -> 38225 bytes test/test_manifest.json | 7 +++++++ 4 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 test/pdfs/issue7901.pdf diff --git a/src/core/fonts.js b/src/core/fonts.js index cbd9c1f35..93cd088be 100644 --- a/src/core/fonts.js +++ b/src/core/fonts.js @@ -2252,7 +2252,7 @@ var Font = (function FontClosure() { var isTrueType = !tables['CFF ']; if (!isTrueType) { // OpenType font - if ((header.version === 'OTTO' && properties.type !== 'CIDFontType2') || + if ((header.version === 'OTTO' && !properties.composite) || !tables['head'] || !tables['hhea'] || !tables['maxp'] || !tables['post']) { // no major tables: throwing everything at CFFFont @@ -2397,7 +2397,7 @@ var Font = (function FontClosure() { return false; } - if (properties.type === 'CIDFontType2') { + if (properties.composite) { var cidToGidMap = properties.cidToGidMap || []; var isCidToGidMapEmpty = cidToGidMap.length === 0; diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 29e59377e..236db80c9 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -44,6 +44,7 @@ !issue7835.pdf !issue7855.pdf !issue7872.pdf +!issue7901.pdf !bad-PageLabels.pdf !filled-background.pdf !ArabicCIDTrueType.pdf diff --git a/test/pdfs/issue7901.pdf b/test/pdfs/issue7901.pdf new file mode 100644 index 0000000000000000000000000000000000000000..864c5c4f5635d7f16b3ff32407fb2d3477fb9f8f GIT binary patch literal 38225 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%0D) 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
i;339oYAH; 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%0D5#j5BY# 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