Skip to content

Commit 784a772

Browse files
committed
Improve checkbox rendering
DEVSIX-7426
1 parent 0561dc4 commit 784a772

28 files changed

+802
-637
lines changed

forms/src/main/java/com/itextpdf/forms/PdfAcroForm.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ This file is part of the iText (R) project.
2727
import com.itextpdf.forms.exceptions.FormsExceptionMessageConstant;
2828
import com.itextpdf.forms.fields.AbstractPdfFormField;
2929
import com.itextpdf.forms.fields.PdfFormAnnotation;
30+
import com.itextpdf.forms.fields.PdfFormAnnotationUtil;
3031
import com.itextpdf.forms.fields.PdfFormField;
31-
import com.itextpdf.forms.logs.FormsLogMessageConstants;
3232
import com.itextpdf.forms.fields.PdfFormFieldMergeUtil;
33-
import com.itextpdf.forms.fields.PdfFormAnnotationUtil;
33+
import com.itextpdf.forms.logs.FormsLogMessageConstants;
3434
import com.itextpdf.forms.xfa.XfaForm;
3535
import com.itextpdf.kernel.exceptions.PdfException;
3636
import com.itextpdf.kernel.geom.AffineTransform;
@@ -216,7 +216,7 @@ public void addField(PdfFormField field, PdfPage page, boolean replaceExisted) {
216216
if (!field.getPdfObject().containsKey(PdfName.T)) {
217217
throw new PdfException(FormsExceptionMessageConstant.FORM_FIELD_MUST_HAVE_A_NAME);
218218
}
219-
219+
220220
if (!replaceExisted) {
221221
PdfFormFieldMergeUtil.mergeKidsWithSameNames(field, true);
222222
}
@@ -1085,6 +1085,14 @@ public void removeXfaForm() {
10851085
}
10861086
}
10871087

1088+
/**
1089+
* Put a key/value pair in the dictionary and overwrites the previous value if it already exists.
1090+
*
1091+
* @param key the key as pdf name
1092+
* @param value the value as pdf object
1093+
*
1094+
* @return this {@link PdfAcroForm} instance
1095+
*/
10881096
public PdfAcroForm put(PdfName key, PdfObject value) {
10891097
getPdfObject().put(key, value);
10901098
setModified();

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

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,7 @@ This file is part of the iText (R) project.
4040
import com.itextpdf.kernel.pdf.PdfString;
4141

4242
import java.util.ArrayList;
43-
import java.util.Arrays;
44-
import java.util.HashSet;
4543
import java.util.List;
46-
import java.util.Set;
4744

4845
/**
4946
* This class represents a single field or field group in an {@link com.itextpdf.forms.PdfAcroForm
@@ -55,16 +52,17 @@ This file is part of the iText (R) project.
5552
*/
5653
public abstract class AbstractPdfFormField extends PdfObjectWrapper<PdfDictionary> {
5754

58-
private static final PdfName[] TERMINAL_FIELDS = new PdfName[]{PdfName.Btn, PdfName.Tx, PdfName.Ch, PdfName.Sig};
5955
/**
6056
* Size of text in form fields when font size is not explicitly set.
6157
*/
62-
static final int DEFAULT_FONT_SIZE = 12;
58+
public static final int DEFAULT_FONT_SIZE = 12;
6359

6460
/**
6561
* Minimal size of text in form fields.
6662
*/
67-
static final int MIN_FONT_SIZE = 4;
63+
public static final int MIN_FONT_SIZE = 4;
64+
65+
private static final PdfName[] TERMINAL_FIELDS = new PdfName[] {PdfName.Btn, PdfName.Tx, PdfName.Ch, PdfName.Sig};
6866

6967
/**
7068
* Index of font value in default appearance element.

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,14 @@ public PdfButtonFormField createCheckBox() {
9090
check.put(PdfName.V, new PdfName(PdfFormAnnotation.OFF_STATE_VALUE));
9191

9292
if (getWidgetRectangle() != null) {
93-
//TODO DEVSIX-7426 remove flag
93+
//TODO DEVSIX-7443 remove flag
9494
if (ExperimentalFeatures.ENABLE_EXPERIMENTAL_CHECKBOX_RENDERING) {
9595
check.getFirstFormAnnotation()
9696
.drawCheckBoxAndSaveAppearanceExperimental(PdfFormAnnotation.ON_STATE_VALUE);
9797
setPageToField(check);
9898
return check;
9999
}
100-
//TODO DEVSIX-7426 remove from here till end
100+
//TODO DEVSIX-7443 remove from here till end
101101
if (getConformanceLevel() == null) {
102102
check.getFirstFormAnnotation().drawCheckAppearance(getWidgetRectangle().getWidth(),
103103
getWidgetRectangle().getHeight(), PdfFormAnnotation.ON_STATE_VALUE);

0 commit comments

Comments
 (0)