Skip to content

Commit 2aafb60

Browse files
committed
Regenerate appearance only by request.
DEVSIX-1568
1 parent 31904ae commit 2aafb60

File tree

4 files changed

+23
-9
lines changed

4 files changed

+23
-9
lines changed

forms/src/main/java/com/itextpdf/forms/fields/PdfFormField.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,13 +1035,10 @@ public PdfFormField setValue(String value, boolean generateAppearance) {
10351035
put(PdfName.V, new PdfString(value, PdfEncodings.UNICODE_BIG));
10361036
}
10371037

1038-
if (PdfName.Btn.equals(formType) && (getFieldFlags() & PdfButtonFormField.FF_PUSH_BUTTON) == 0) {
1039-
if (generateAppearance) {
1040-
regenerateField();
1041-
}
1042-
} else {
1038+
if (generateAppearance) {
10431039
regenerateField();
10441040
}
1041+
10451042
this.setModified();
10461043
return this;
10471044
}

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

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,7 @@ This file is part of the iText (R) project.
4949
import com.itextpdf.io.LogMessageConstant;
5050
import com.itextpdf.io.source.ByteArrayOutputStream;
5151
import com.itextpdf.kernel.geom.Rectangle;
52-
import com.itextpdf.kernel.pdf.PdfDocument;
53-
import com.itextpdf.kernel.pdf.PdfPage;
54-
import com.itextpdf.kernel.pdf.PdfReader;
55-
import com.itextpdf.kernel.pdf.PdfWriter;
52+
import com.itextpdf.kernel.pdf.*;
5653
import com.itextpdf.kernel.utils.CompareTool;
5754
import com.itextpdf.test.ExtendedITextTest;
5855
import com.itextpdf.test.annotations.LogMessage;
@@ -362,4 +359,24 @@ public void acroFieldDictionaryNoFields() throws IOException, InterruptedExcepti
362359
Assert.fail(errorMessage);
363360
}
364361
}
362+
363+
@Test
364+
public void regenerateAppearance() throws IOException, InterruptedException {
365+
String input = "regenerateAppearance.pdf";
366+
String output = "regenerateAppearance.pdf";
367+
PdfDocument document = new PdfDocument(new PdfReader(sourceFolder + input ),
368+
new PdfWriter(destinationFolder + output),
369+
new StampingProperties().useAppendMode());
370+
PdfAcroForm acro = PdfAcroForm.getAcroForm(document, false);
371+
int i = 1;
372+
for (Map.Entry<String, PdfFormField> entry : acro.getFormFields().entrySet()) {
373+
if (entry.getKey().contains("field")) {
374+
PdfFormField field = entry.getValue();
375+
field.setValue("test" + i++, false);
376+
}
377+
}
378+
document.close();
379+
Assert.assertNull(new CompareTool().compareByContent(destinationFolder + output,
380+
sourceFolder + "cmp_" + output, destinationFolder, "diff"));
381+
}
365382
}

0 commit comments

Comments
 (0)