From d4bcfe8c16aec6c9c944437e9ae91a2a2a7e7981 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Tue, 21 Mar 2023 12:24:21 +0100 Subject: [PATCH] Support multi-byte ToUnicode entries, when using predefined CMaps (issue 16176) Hopefully this makes sense, since we already "create" multi-byte ToUnicode entries in other cases (see e.g. the `getNormalizedUnicodes` table). --- src/core/evaluator.js | 12 ++++++++---- test/pdfs/.gitignore | 1 + test/pdfs/issue16176.pdf | Bin 0 -> 65589 bytes test/unit/api_spec.js | 18 ++++++++++++++++++ 4 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 test/pdfs/issue16176.pdf diff --git a/src/core/evaluator.js b/src/core/evaluator.js index f1ec82a96..8e389119f 100644 --- a/src/core/evaluator.js +++ b/src/core/evaluator.js @@ -3632,7 +3632,8 @@ class PartialEvaluator { fetchBuiltInCMap: this._fetchBuiltInCMapBound, useCMap: null, }); - const toUnicode = []; + const toUnicode = [], + buf = []; properties.cMap.forEach(function (charcode, cid) { if (cid > 0xffff) { throw new FormatError("Max size of CID is 65,535"); @@ -3641,9 +3642,12 @@ class PartialEvaluator { // obtained in step (d), producing a Unicode value. const ucs2 = ucs2CMap.lookup(cid); if (ucs2) { - toUnicode[charcode] = String.fromCharCode( - (ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1) - ); + buf.length = 0; + // Support multi-byte entries (fixes issue16176.pdf). + for (let i = 0, ii = ucs2.length; i < ii; i += 2) { + buf.push((ucs2.charCodeAt(i) << 8) + ucs2.charCodeAt(i + 1)); + } + toUnicode[charcode] = String.fromCharCode(...buf); } }); return new ToUnicodeMap(toUnicode); diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 55c567aee..679f1e97b 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -118,6 +118,7 @@ !issue6127.pdf !issue7891_bc0.pdf !issue11242_reduced.pdf +!issue16176.pdf !issue11279.pdf !issue11362.pdf !issue13325_reduced.pdf diff --git a/test/pdfs/issue16176.pdf b/test/pdfs/issue16176.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0558900e9380e9a5faefa12e9f703ded8f2cb12f GIT binary patch literal 65589 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 F{{v31h2j7J literal 0 HcmV?d00001 diff --git a/test/unit/api_spec.js b/test/unit/api_spec.js index a49cd2e43..ffcdcf061 100644 --- a/test/unit/api_spec.js +++ b/test/unit/api_spec.js @@ -28,6 +28,7 @@ import { } from "../../src/shared/util.js"; import { buildGetDocumentParams, + CMAP_URL, DefaultFileReaderFactory, TEST_PDFS_PATH, } from "./test_utils.js"; @@ -2593,6 +2594,23 @@ Caron Broadcasting, Inc., an Ohio corporation (“Lessee”).`) await loadingTask.destroy(); }); + it("gets text content with multi-byte entries, using predefined CMaps (issue 16176)", async function () { + const loadingTask = getDocument( + buildGetDocumentParams("issue16176.pdf", { + cMapUrl: CMAP_URL, + useWorkerFetch: false, + }) + ); + const pdfDoc = await loadingTask.promise; + const pdfPage = await pdfDoc.getPage(1); + const { items } = await pdfPage.getTextContent(); + const text = mergeText(items); + + expect(text).toEqual("𠮷"); + + await loadingTask.destroy(); + }); + it("gets empty structure tree", async function () { const tree = await page.getStructTree();