From 22b97d1741c50fad94a63615a81f667a5a539af7 Mon Sep 17 00:00:00 2001 From: calixteman Date: Tue, 3 Feb 2026 23:11:31 +0100 Subject: [PATCH] Flush the text content chunk only on real font changes (bug 2013793) --- src/core/evaluator.js | 36 ++++++++++++++++++++++-------------- test/pdfs/.gitignore | 1 + test/pdfs/bug2013793.pdf | Bin 0 -> 72444 bytes test/unit/api_spec.js | 23 +++++++++++++++++++++++ 4 files changed, 46 insertions(+), 14 deletions(-) create mode 100644 test/pdfs/bug2013793.pdf diff --git a/src/core/evaluator.js b/src/core/evaluator.js index 6a2ba2986..490aca14d 100644 --- a/src/core/evaluator.js +++ b/src/core/evaluator.js @@ -2538,7 +2538,7 @@ class PartialEvaluator { const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager); - let textState; + let textState, currentTextState; function pushWhitespace({ width = 0, @@ -2800,7 +2800,9 @@ class PartialEvaluator { // When the total height of the current chunk is negative // then we're writing from bottom to top. - const textOrientation = Math.sign(textContentItem.height); + const textOrientation = Math.sign( + textContentItem.height || textContentItem.totalHeight + ); if (advanceY < textOrientation * textContentItem.negativeSpaceMax) { if ( Math.abs(advanceX) > @@ -2864,7 +2866,9 @@ class PartialEvaluator { // When the total width of the current chunk is negative // then we're writing from right to left. - const textOrientation = Math.sign(textContentItem.width); + const textOrientation = Math.sign( + textContentItem.width || textContentItem.totalWidth + ); if (advanceX < textOrientation * textContentItem.negativeSpaceMax) { if ( Math.abs(advanceY) > @@ -2922,6 +2926,15 @@ class PartialEvaluator { } function buildTextContentItem({ chars, extraSpacing }) { + if ( + currentTextState !== textState && + (currentTextState.fontName !== textState.fontName || + currentTextState.fontSize !== textState.fontSize) + ) { + flushTextContentItem(); + currentTextState = textState.clone(); + } + const font = textState.font; if (!chars) { // Just move according to the space we have. @@ -3177,8 +3190,8 @@ class PartialEvaluator { break; } - const previousState = textState; textState = stateManager.state; + currentTextState ||= textState.clone(); const fn = operation.fn; args = operation.args; @@ -3195,7 +3208,6 @@ class PartialEvaluator { break; } - flushTextContentItem(); textState.fontName = fontNameArg; textState.fontSize = fontSizeArg; next(handleSetFont(fontNameArg, null)); @@ -3552,14 +3564,10 @@ class PartialEvaluator { } break; case OPS.restore: - if ( - previousState && - (previousState.font !== textState.font || - previousState.fontSize !== textState.fontSize || - previousState.fontName !== textState.fontName) - ) { - flushTextContentItem(); - } + stateManager.restore(); + break; + case OPS.save: + stateManager.save(); break; } // switch if (textContent.items.length >= (sink?.desiredSize ?? 1)) { @@ -5083,7 +5091,7 @@ class TextState { } clone() { - const clone = Object.create(this); + const clone = Object.assign(Object.create(this), this); clone.textMatrix = this.textMatrix.slice(); clone.textLineMatrix = this.textLineMatrix.slice(); clone.fontMatrix = this.fontMatrix.slice(); diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index f95ab95a7..7d924f753 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -871,3 +871,4 @@ !page_with_number.pdf !page_with_number_and_link.pdf !Brotli-Prototype-FileA.pdf +!bug2013793.pdf diff --git a/test/pdfs/bug2013793.pdf b/test/pdfs/bug2013793.pdf new file mode 100644 index 0000000000000000000000000000000000000000..39878f5c779b7f069a7b3306ce8266d9c0df7b32 GIT binary patch literal 72444 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 WHYxe-#s_n8bMj$h(9=sQO8qZMKN52Q literal 0 HcmV?d00001 diff --git a/test/unit/api_spec.js b/test/unit/api_spec.js index 1d619f2cb..9829ae9d3 100644 --- a/test/unit/api_spec.js +++ b/test/unit/api_spec.js @@ -4069,6 +4069,29 @@ Caron Broadcasting, Inc., an Ohio corporation (“Lessee”).`) await loadingTask.destroy(); }); + it("gets text content with some fake font changes (bug 2013793)", async function () { + const loadingTask = getDocument(buildGetDocumentParams("bug2013793.pdf")); + const pdfDoc = await loadingTask.promise; + const pdfPage = await pdfDoc.getPage(1); + const { items } = await pdfPage.getTextContent({ + disableNormalization: true, + }); + const text = mergeText(items); + expect(text) + .toEqual(`This is a great deal of nothing. The purpose is to help in identifying a bug when the PDF +is read by Firefox. I want to know whether any of the two words in this paragraph run +together. If they do, I will file a bug report. The problem seems to occur somewhere +between the 240th and 260th character in the paragraph. I should have written that much +by now. So, here’s to squashing bugs. +This is a great deal of nothing. The purpose is to help in identifying a bug when the +PDF is read by Firefox. I want to know whether any of the two words in this +paragraph run together. If they do, I will file a bug report. The problem seems to +occur somewhere between the 240th and 260th character in the paragraph. I should +have written that much by now. So, here’s to squashing bugs.`); + + await loadingTask.destroy(); + }); + it("gets empty structure tree", async function () { const tree = await page.getStructTree();