From aa9503e51f687512b3a7a48f46f47950780ef1c1 Mon Sep 17 00:00:00 2001 From: Calixte Denizet Date: Thu, 28 Nov 2024 15:56:00 +0100 Subject: [PATCH] Correctly compute the mapping between text and normalized text when it contains a compound word on two lines It fixes #19120. The original text doesn't contain the cr so we must take that into account. --- test/pdfs/.gitignore | 1 + test/pdfs/issue19120.pdf | Bin 0 -> 26879 bytes test/unit/pdf_find_controller_spec.js | 28 +++++++++++++++++++++++--- web/pdf_find_controller.js | 3 +-- 4 files changed, 27 insertions(+), 5 deletions(-) create mode 100755 test/pdfs/issue19120.pdf diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 0d392f67c..89657327d 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -682,3 +682,4 @@ !bug1922766.pdf !issue18956.pdf !issue19083.pdf +!issue19120.pdf diff --git a/test/pdfs/issue19120.pdf b/test/pdfs/issue19120.pdf new file mode 100755 index 0000000000000000000000000000000000000000..a271b5eb699ebad307d01185ec4ebb0c4fae173e GIT binary patch literal 26879 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

i(J6Oc?e*^fRneWzR_emqds8t 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