diff --git a/src/core/annotation.js b/src/core/annotation.js index c77b2b8c96fba..9f27194994349 100644 --- a/src/core/annotation.js +++ b/src/core/annotation.js @@ -2526,12 +2526,13 @@ class WidgetAnnotation extends Annotation { const roundWithTwoDigits = x => Math.floor(x * 100) / 100; if (lineCount === -1) { + // Get the text width for a font size of 1. const textWidth = this._getTextWidth(text, font); + + // width / textWidth is the max font size to fit the width. + // height / LINE_FACTOR is the max font size to fit the height. fontSize = roundWithTwoDigits( - Math.min( - height / LINE_FACTOR, - textWidth > width ? width / textWidth : Infinity - ) + Math.min(height / LINE_FACTOR, width / textWidth) ); numberOfLines = 1; } else { diff --git a/test/unit/annotation_spec.js b/test/unit/annotation_spec.js index 8f91754741270..9e5739fd73f88 100644 --- a/test/unit/annotation_spec.js +++ b/test/unit/annotation_spec.js @@ -1850,7 +1850,7 @@ describe("annotation", function () { const utf16String = "\x30\x53\x30\x93\x30\x6b\x30\x61\x30\x6f\x4e\x16\x75\x4c\x30\x6e"; expect(appearance).toEqual( - "/Tx BMC q BT /Goth 5.92 Tf 0 g 1 0 0 1 0 0 Tm" + + "/Tx BMC q BT /Goth 3.5 Tf 0 g 1 0 0 1 0 0 Tm" + ` 2 3.07 Td (${utf16String}) Tj ET Q EMC` ); });