From bb0fd5e4e2113c367524afca75d8a71a498d625c Mon Sep 17 00:00:00 2001 From: calixteman Date: Sun, 14 Dec 2025 23:22:04 +0100 Subject: [PATCH] Take into account the current transform when getting font size for FreeText Fixes issue #20504. And the text position in Arabic FreeText annotations. --- src/core/annotation.js | 9 +++- src/core/default_appearance.js | 4 +- test/integration/freetext_editor_spec.mjs | 54 ++++++++++++++++++++++ test/pdfs/.gitignore | 1 + test/pdfs/issue20504.pdf | Bin 0 -> 31847 bytes 5 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 test/pdfs/issue20504.pdf diff --git a/src/core/annotation.js b/src/core/annotation.js index f2f642b5008d5..53610f7ec34f8 100644 --- a/src/core/annotation.js +++ b/src/core/annotation.js @@ -1278,6 +1278,8 @@ class Annotation { const text = []; const buffer = []; + let firstPositionX = Infinity; + let firstPositionY = Infinity; let firstPosition = null; const sink = { desiredSize: Math.Infinity, @@ -1288,7 +1290,8 @@ class Annotation { if (item.str === undefined) { continue; } - firstPosition ||= item.transform.slice(-2); + firstPositionX = Math.min(firstPositionX, item.transform[4]); + firstPositionY = Math.min(firstPositionY, item.transform[5]); buffer.push(item.str); if (item.hasEOL) { text.push(buffer.join("").trimEnd()); @@ -1309,6 +1312,10 @@ class Annotation { }); this.reset(); + if (firstPositionX !== Infinity) { + firstPosition = [firstPositionX, firstPositionY]; + } + if (buffer.length) { text.push(buffer.join("").trimEnd()); } diff --git a/src/core/default_appearance.js b/src/core/default_appearance.js index ad49f187e85a3..04e0259d98b87 100644 --- a/src/core/default_appearance.js +++ b/src/core/default_appearance.js @@ -26,6 +26,7 @@ import { LINE_FACTOR, OPS, shadow, + Util, warn, } from "../shared/util.js"; import { ColorSpaceUtils } from "./colorspace_utils.js"; @@ -145,7 +146,8 @@ class AppearanceStreamEvaluator extends EvaluatorPreprocessor { result = stack.pop() || result; break; case OPS.setTextMatrix: - result.scaleFactor *= Math.hypot(args[0], args[1]); + const tm = Util.transform(this.stateManager.state.ctm, args); + result.scaleFactor *= Math.hypot(tm[0], tm[1]); break; case OPS.setFont: const [fontName, fontSize] = args; diff --git a/test/integration/freetext_editor_spec.mjs b/test/integration/freetext_editor_spec.mjs index b8a5cb4e6ba81..cb1b0e1d2519f 100644 --- a/test/integration/freetext_editor_spec.mjs +++ b/test/integration/freetext_editor_spec.mjs @@ -1799,6 +1799,60 @@ describe("FreeText Editor", () => { }); }); + describe("FreeText (open existing generated with Cairo)", () => { + let pages; + + beforeEach(async () => { + pages = await loadAndWait( + "issue20504.pdf", + ".annotationEditorLayer", + 100 + ); + }); + + afterEach(async () => { + await closePages(pages); + }); + + it("must open some existing annotations", async () => { + await Promise.all( + pages.map(async ([browserName, page]) => { + const boxes = []; + for (const num of [48, 49, 50, 51, 52]) { + const id = `${num}R`; + await page.waitForSelector(getAnnotationSelector(id), { + visible: true, + }); + const rect = await getRect(page, getAnnotationSelector(id)); + boxes.push(rect); + } + + await switchToFreeText(page); + + for (let i = 0; i < boxes.length; i++) { + const rect = await getRect( + page, + `#pdfjs_internal_editor_${i}-editor` + ); + + expect(Math.abs(rect.width - boxes[i].width) <= 20) + .withContext(`In ${browserName}`) + .toEqual(true); + expect(Math.abs(rect.height - boxes[i].height) <= 20) + .withContext(`In ${browserName}`) + .toEqual(true); + expect(Math.abs(rect.x - boxes[i].x) <= 20) + .withContext(`In ${browserName}`) + .toEqual(true); + expect(Math.abs(rect.y - boxes[i].y) <= 20) + .withContext(`In ${browserName}`) + .toEqual(true); + } + }) + ); + }); + }); + describe("Keyboard shortcuts when the editor layer isn't focused", () => { let pages; diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index acd3a66ad0020..02a0a4cfaab3e 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -765,3 +765,4 @@ !two_paragraphs.pdf !paragraph_and_link.pdf !issue20225.pdf +!issue20504.pdf diff --git a/test/pdfs/issue20504.pdf b/test/pdfs/issue20504.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7edea68000eb0e3f5a4517b6e068f58b8f0a471c GIT binary patch literal 31847 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 literal 0 HcmV?d00001