From a7c786775da99a429b8a70f6ace4bfa0147be732 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Sat, 28 Jun 2014 12:38:25 +0200 Subject: [PATCH] [CIDFontType2] Map characters missing in toUnicode to the private use area (bug 1028735 and issue 4881) --- src/core/fonts.js | 17 ++++++++++++----- test/pdfs/.gitignore | 1 + test/pdfs/bug1028735.pdf | Bin 0 -> 22886 bytes test/test_manifest.json | 9 +++++++++ 4 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 test/pdfs/bug1028735.pdf diff --git a/src/core/fonts.js b/src/core/fonts.js index 0293b6ed6..daf6257d4 100644 --- a/src/core/fonts.js +++ b/src/core/fonts.js @@ -2473,6 +2473,7 @@ var Font = (function FontClosure() { var toUnicode = properties.toUnicode; var isSymbolic = !!(properties.flags & FontFlags.Symbolic); var isIdentityUnicode = properties.isIdentityUnicode; + var isCidFontType2 = (properties.type === 'CIDFontType2'); var newMap = Object.create(null); var toFontChar = []; var usedFontCharCodes = []; @@ -2483,11 +2484,17 @@ var Font = (function FontClosure() { var fontCharCode = originalCharCode; // First try to map the value to a unicode position if a non identity map // was created. - if (!isIdentityUnicode && toUnicode[originalCharCode] !== undefined) { - var unicode = toUnicode[fontCharCode]; - // TODO: Try to map ligatures to the correct spot. - if (unicode.length === 1) { - fontCharCode = unicode.charCodeAt(0); + if (!isIdentityUnicode) { + if (toUnicode[originalCharCode] !== undefined) { + var unicode = toUnicode[fontCharCode]; + // TODO: Try to map ligatures to the correct spot. + if (unicode.length === 1) { + fontCharCode = unicode.charCodeAt(0); + } + } else if (isCidFontType2) { + // For CIDFontType2, move characters not present in toUnicode + // to the private use area (fixes bug 1028735 and issue 4881). + fontCharCode = nextAvailableFontCharCode; } } // Try to move control characters, special characters and already mapped diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index debc332f6..8713d6781 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -56,6 +56,7 @@ !bug903856.pdf !bug850854.pdf !bug866395.pdf +!bug1028735.pdf !basicapi.pdf !mixedfonts.pdf !shading_extend.pdf diff --git a/test/pdfs/bug1028735.pdf b/test/pdfs/bug1028735.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5ff93b5cf45b32bf329dcc4122e07695e252f0bc GIT binary patch literal 22886 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 literal 0 HcmV?d00001 diff --git a/test/test_manifest.json b/test/test_manifest.json index 57eb4c9c0..69414840d 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -176,6 +176,15 @@ "rounds": 1, "type": "eq" }, + { "id": "bug1028735", + "file": "pdfs/bug1028735.pdf", + "md5": "5d1a2a87d176ff3b24e66af3cb2365be", + "rounds": 1, + "link": false, + "firstPage": 1, + "lastPage": 1, + "type": "eq" + }, { "id": "issue1512", "file": "pdfs/issue1512.pdf", "md5": "41a19fe03d522346ee3baa732403fca4",