@@ -47,14 +47,19 @@ This file is part of the iText (R) project.
47
47
import com .itextpdf .forms .fields .PdfFormField ;
48
48
import com .itextpdf .forms .fields .PdfTextFormField ;
49
49
import com .itextpdf .io .LogMessageConstant ;
50
+ import com .itextpdf .io .font .constants .StandardFonts ;
50
51
import com .itextpdf .io .source .ByteArrayOutputStream ;
52
+ import com .itextpdf .kernel .font .PdfFontFactory ;
51
53
import com .itextpdf .kernel .geom .Rectangle ;
52
54
import com .itextpdf .kernel .pdf .PdfDocument ;
53
55
import com .itextpdf .kernel .pdf .PdfPage ;
54
56
import com .itextpdf .kernel .pdf .PdfReader ;
55
57
import com .itextpdf .kernel .pdf .PdfWriter ;
56
58
import com .itextpdf .kernel .pdf .StampingProperties ;
59
+ import com .itextpdf .kernel .pdf .canvas .PdfCanvas ;
57
60
import com .itextpdf .kernel .utils .CompareTool ;
61
+ import com .itextpdf .layout .Canvas ;
62
+ import com .itextpdf .layout .element .Paragraph ;
58
63
import com .itextpdf .test .ExtendedITextTest ;
59
64
import com .itextpdf .test .annotations .LogMessage ;
60
65
import com .itextpdf .test .annotations .LogMessages ;
@@ -445,4 +450,35 @@ public void flushedPagesTest() throws IOException, InterruptedException {
445
450
Assert .fail (errorMessage );
446
451
}
447
452
}
453
+
454
+ @ Test
455
+ public void fillFormWithDefaultResourcesUpdateFont () throws IOException , InterruptedException {
456
+ String outPdf = destinationFolder + "fillFormWithDefaultResourcesUpdateFont.pdf" ;
457
+ String cmpPdf = sourceFolder + "cmp_fillFormWithDefaultResourcesUpdateFont.pdf" ;
458
+
459
+ PdfWriter writer = new PdfWriter (outPdf );
460
+ PdfReader reader = new PdfReader (sourceFolder + "formWithDefaultResources.pdf" );
461
+ PdfDocument pdfDoc = new PdfDocument (reader , writer );
462
+
463
+ PdfAcroForm form = PdfAcroForm .getAcroForm (pdfDoc , true );
464
+
465
+
466
+ Map <String , PdfFormField > fields = form .getFormFields ();
467
+ PdfFormField field = fields .get ("Text1" );
468
+
469
+ // TODO DEVSIX-2016: the font in /DR of AcroForm dict is not updated, even though /DA field is updated.
470
+ field .setFont (PdfFontFactory .createFont (StandardFonts .COURIER ));
471
+ field .setValue ("New value size must be 8, but with different font." );
472
+
473
+ new Canvas (new PdfCanvas (pdfDoc .getFirstPage ()), pdfDoc , new Rectangle (30 , 500 , 500 , 200 ))
474
+ .add (new Paragraph ("The text font after modification it via PDF viewer (e.g. Acrobat) shall be preserved." ));
475
+
476
+ pdfDoc .close ();
477
+
478
+ CompareTool compareTool = new CompareTool ();
479
+ String errorMessage = compareTool .compareByContent (outPdf , cmpPdf , destinationFolder , "diff_" );
480
+ if (errorMessage != null ) {
481
+ Assert .fail (errorMessage );
482
+ }
483
+ }
448
484
}
0 commit comments