diff --git a/src/core/annotation.js b/src/core/annotation.js
index 3b57c146c..81a8d3d25 100644
--- a/src/core/annotation.js
+++ b/src/core/annotation.js
@@ -2572,7 +2572,7 @@ class TextWidgetAnnotation extends WidgetAnnotation {
}
get hasTextContent() {
- return !!this.appearance;
+ return !!this.appearance && !this._needAppearances;
}
_getCombAppearance(
diff --git a/test/integration/annotation_spec.js b/test/integration/annotation_spec.js
index f32a06b85..00c0c3ccd 100644
--- a/test/integration/annotation_spec.js
+++ b/test/integration/annotation_spec.js
@@ -508,4 +508,32 @@ describe("ResetForm action", () => {
});
});
});
+
+ describe("Don't use AP when /NeedAppearances is true", () => {
+ describe("bug1844583.pdf", () => {
+ let pages;
+
+ beforeAll(async () => {
+ pages = await loadAndWait(
+ "bug1844583.pdf",
+ "[data-annotation-id='8R']"
+ );
+ });
+
+ afterAll(async () => {
+ await closePages(pages);
+ });
+
+ it("must check the content of the text field", async () => {
+ await Promise.all(
+ pages.map(async ([browserName, page]) => {
+ const text = await page.$eval(getSelector("8R"), el => el.value);
+ expect(text)
+ .withContext(`In ${browserName}`)
+ .toEqual("Hello World");
+ })
+ );
+ });
+ });
+ });
});
diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore
index 6f736fb1d..3bbc3766c 100644
--- a/test/pdfs/.gitignore
+++ b/test/pdfs/.gitignore
@@ -605,3 +605,4 @@
!rotated_freetexts.pdf
!issue16633.pdf
!bug1844576.pdf
+!bug1844583.pdf
diff --git a/test/pdfs/bug1844583.pdf b/test/pdfs/bug1844583.pdf
new file mode 100755
index 000000000..e3ab8e7ee
--- /dev/null
+++ b/test/pdfs/bug1844583.pdf
@@ -0,0 +1,148 @@
+%PDF-1.6
+%¿÷¢þ
+1 0 obj
+<< /AcroForm 5 0 R /Metadata 11 0 R /Names 6 0 R /Outlines 13 0 R /Pages 17 0 R /Type /Catalog >>
+endobj
+2 0 obj
+<< /Type /ObjStm /Length 188 /N 1 /First 4 >>
+stream
+3 0
+<< /CreationDate (D:20230721095805+02'00') /Creator (Adobe Acrobat Pro \(64-bit\) 23.3.20244) /ModDate (D:20230721100148+02'00') /Producer (Adobe Acrobat Pro \(64-bit\) 23.3.20244) >>
+endstream
+endobj
+4 0 obj
+<< /Type /ObjStm /Length 1801 /N 6 /First 35 >>
+stream
+5 0 6 132 7 149 8 159 9 371 10 455
+<< /DR << /Encoding << /PDFDocEncoding 10 0 R >> /Font << /Helv 9 0 R /ZaDb 20 0 R >> >> /Fields [ 8 0 R ]/NeedAppearances true >>
+<< /AP 18 0 R >>
+[ 8 0 R ]
+<< /AP << /N 21 0 R >> /DA (/Helv 12 Tf 0 g) /DV (Hello World) /F 4 /FT /Tx /MK << /BC [ 0.0 0.0 0.0 ] >> /P 22 0 R /Rect [ 131.6 601.2 281.6 623.2 ] /Subtype /Widget /T (Texte2) /Type /Annot /V (Hello World) >>
+<< /BaseFont /Helvetica /Encoding 10 0 R /Name /Helv /Subtype /Type1 /Type /Font >>
+<< /Differences [ 24 /breve /caron /circumflex /dotaccent /hungarumlaut /ogonek /ring /tilde 39 /quotesingle 96 /grave 128 /bullet /dagger /daggerdbl /ellipsis /emdash /endash /florin /fraction /guilsinglleft /guilsinglright /minus /perthousand /quotedblbase /quotedblleft /quotedblright /quoteleft /quoteright /quotesinglbase /trademark /fi /fl /Lslash /OE /Scaron /Ydieresis /Zcaron /dotlessi /lslash /oe /scaron /zcaron 160 /Euro 164 /currency 166 /brokenbar 168 /dieresis /copyright /ordfeminine 172 /logicalnot /.notdef /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu 183 /periodcentered /cedilla /onesuperior /ordmasculine 188 /onequarter /onehalf /threequarters 192 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] /Type /Encoding >>
+endstream
+endobj
+11 0 obj
+<< /Subtype /XML /Type /Metadata /Length 3364 >>
+stream
+
+
+
+
+ 2023-07-21T10:01:48+02:00
+ 2023-07-21T09:58:05+02:00
+ 2023-07-21T10:01:48+02:00
+ Adobe Acrobat Pro (64-bit) 23.3.20244
+ application/pdf
+ uuid:01408f4e-b0df-4768-b616-81fb5426259c
+ uuid:a83efd67-436f-4844-9d28-46e27f819da6
+ Adobe Acrobat Pro (64-bit) 23.3.20244
+ 1
+ 1.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+endstream
+endobj
+12 0 obj
+<< /Type /ObjStm /Length 173 /N 3 /First 18 >>
+stream
+13 0 14 58 15 110
+<< /Count 1 /First 14 0 R /Last 14 0 R /Type /Outlines >>
+<< /A 15 0 R /Parent 13 0 R /Title (Page vierge) >>
+<< /D [ 22 0 R /XYZ 0 792 null ] /S /GoTo >>
+endstream
+endobj
+16 0 obj
+<< /Type /ObjStm /Length 365 /N 2 /First 11 >>
+stream
+17 0 18 45
+<< /Count 1 /Kids [ 22 0 R ] /Type /Pages >>
+<< /Names [ 23 0 R 24 0 R ] >>
+endstream
+endobj
+19 0 obj
+<< /Type /ObjStm /Length 75 /N 1 /First 5 >>
+stream
+20 0
+<< /BaseFont /ZapfDingbats /Name /ZaDb /Subtype /Type1 /Type /Font >>
+endstream
+endobj
+21 0 obj
+<< /BBox [ 0.0 0.0 150.0 22.0 ] /FormType 1 /Matrix [ 1.0 0.0 0.0 1.0 0.0 0.0 ] /Resources << /Font << /Helv 9 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 130 >>
+stream
+q
+0 G
+0.5 0.5 149 21 re
+s
+Q
+/Tx BMC
+q
+1 1 148 20 re
+W
+n
+BT
+/Helv 12 Tf
+0 g
+2 6.548 Td
+(Dlrow ) Tj
+30.66 0 Td
+(Olleh) Tj
+ET
+Q
+EMC
+endstream
+endobj
+22 0 obj
+<< /Annots 7 0 R /Contents 25 0 R /CropBox [ 115.6 587.6 293.2 641.6 ] /MediaBox [ 0.0 0.0 612.0 792.0 ] /Parent 17 0 R /Resources << >> /Rotate 0 /TrimBox [ 115.6 587.6 293.2 641.6 ] /Type /Page >>
+endobj
+23 0 obj
+<< /BBox [ 0.0 0.0 24.0 24.0 ] /Resources << /ExtGState << /GS0 << /AIS false /BM /Normal /CA 0.6 /Type /ExtGState /ca 0.6 >> >> >> /Subtype /Form /Type /XObject /Length 846 >>
+stream
+q 1 1 1 rg 0 i 1 w 4 M 1 j 0 J []0 d /GS0 gs 1 0 0 1 9 5.0908 cm 7.74 12.616 m -7.74 12.616 l -8.274 12.616 -8.707 12.184 -8.707 11.649 c -8.707 -3.831 l -8.707 -4.365 -8.274 -4.798 -7.74 -4.798 c 7.74 -4.798 l 8.274 -4.798 8.707 -4.365 8.707 -3.831 c 8.707 11.649 l 8.707 12.184 8.274 12.616 7.74 12.616 c h f Q 0 G 1 0.819611 0 rg 0 i 0.60 w 4 M 1 j 0 J [0 100]1 d 1 0 0 1 9 5.0908 cm 1 0 m -2.325 -2.81 l -2.325 0 l -5.72 0 l -5.72 8.94 l 5.51 8.94 l 5.51 0 l 1 0 l -3.50 5.01 m -3.50 5.59 l 3.29 5.59 l 3.29 5.01 l -3.50 5.01 l -3.50 3.34 m -3.50 3.92 l 2.27 3.92 l 2.27 3.34 l -3.50 3.34 l 7.74 12.616 m -7.74 12.616 l -8.274 12.616 -8.707 12.184 -8.707 11.649 c -8.707 -3.831 l -8.707 -4.365 -8.274 -4.798 -7.74 -4.798 c 7.74 -4.798 l 8.274 -4.798 8.707 -4.365 8.707 -3.831 c 8.707 11.649 l 8.707 12.184 8.274 12.616 7.74 12.616 c b endstream
+endobj
+24 0 obj
+<< /BBox [ 0.0 0.0 24.0 24.0 ] /Resources << /ExtGState << /GS0 << /AIS false /BM /Normal /CA 0.6 /Type /ExtGState /ca 0.6 >> >> >> /Subtype /Form /Type /XObject /Length 385 >>
+stream
+0 G 1 0.819611 0 rg 0 i 0.60 w 4 M 1 j 0 J [0 100]1 d 1 0 0 1 9 5.0908 cm 4.1 1.71 m -0.54 -2.29 l -0.54 1.71 l -5.5 1.71 l -5.5 14.42 l 10.5 14.42 l 10.5 1.71 l 4.1 1.71 l -2.33 9.66 m 7.34 9.66 l 7.34 8.83 l -2.33 8.83 l -2.33 9.66 l -2.33 7.28 m 5.88 7.28 l 5.88 6.46 l -2.33 6.46 l -2.33 7.28 l 14.9 23.1235 m -14.9 23.1235 l -14.9 -20.345 l 14.9 -20.345 l 14.9 23.1235 l b endstream
+endobj
+25 0 obj
+<< /Length 0 >>
+stream
+endstream
+endobj
+26 0 obj
+<< /Type /XRef /Length 108 /W [ 1 2 1 ] /Info 3 0 R /Root 1 0 R /Size 27 /ID [<8d8ee619e3ffbd4890861ff2e03d4ca5><482932e9b1e074ad6477186dfde6b11d>] >>
+stream
+ € Š ã Y V ¬
ä "W "ˆ
+endstream
+endobj
+startxref
+8840
+%%EOF