Skip to content

Commit e2a322a

Browse files
Add test for filling the form and updating it's font
DEVSIX-2016
1 parent 293fdf5 commit e2a322a

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

forms/src/test/java/com/itextpdf/forms/PdfFormFieldTest.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,19 @@ This file is part of the iText (R) project.
4747
import com.itextpdf.forms.fields.PdfFormField;
4848
import com.itextpdf.forms.fields.PdfTextFormField;
4949
import com.itextpdf.io.LogMessageConstant;
50+
import com.itextpdf.io.font.constants.StandardFonts;
5051
import com.itextpdf.io.source.ByteArrayOutputStream;
52+
import com.itextpdf.kernel.font.PdfFontFactory;
5153
import com.itextpdf.kernel.geom.Rectangle;
5254
import com.itextpdf.kernel.pdf.PdfDocument;
5355
import com.itextpdf.kernel.pdf.PdfPage;
5456
import com.itextpdf.kernel.pdf.PdfReader;
5557
import com.itextpdf.kernel.pdf.PdfWriter;
5658
import com.itextpdf.kernel.pdf.StampingProperties;
59+
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
5760
import com.itextpdf.kernel.utils.CompareTool;
61+
import com.itextpdf.layout.Canvas;
62+
import com.itextpdf.layout.element.Paragraph;
5863
import com.itextpdf.test.ExtendedITextTest;
5964
import com.itextpdf.test.annotations.LogMessage;
6065
import com.itextpdf.test.annotations.LogMessages;
@@ -445,4 +450,35 @@ public void flushedPagesTest() throws IOException, InterruptedException {
445450
Assert.fail(errorMessage);
446451
}
447452
}
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+
}
448484
}

0 commit comments

Comments
 (0)