How to make sure a check box is printed?
I am new to iTextSharp, and would appreciate some help. I am creating some checkboxes, an example of the code is below:
PdfFormField checkbox1 = PdfFormField.CreateCheckBox(writer); checkbox1.SetWidget(new Rectangle(524, 600, 540, 616), PdfAnnotation.HIGHLIGHT_INVERT); checkbox1.ValueAsName = ("Off"); checkbox1.AppearanceState = ("Off"); checkbox1.FieldName = ("UsersNo"); checkbox1.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", chkOff); checkbox1.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, "On", chkOn); writer.AddAnnotation(checkbox1);
Posted on StackOverflow on Mar 23, 2015 by user1176737
In iText 7 you define a check box like this:
PdfButtonFormField checkField = PdfFormField.createCheckBox(pdfDoc, new Rectangle(524, 600, 16, 16), "UsersNo", "Off", PdfFormField.TYPE_CHECK);
If you look at the source code of the createCheckBox()
method:
public static PdfButtonFormField createCheckBox(PdfDocument doc, Rectangle rect, String name, String value, int checkType, PdfAConformanceLevel pdfAConformanceLevel) {
PdfWidgetAnnotation annot = new PdfWidgetAnnotation(rect);
PdfButtonFormField check = new PdfButtonFormField(annot, doc);
check.pdfAConformanceLevel = pdfAConformanceLevel;
annot.setFlag(PdfAnnotation.PRINT);
check.setCheckType(checkType);
//…
return check;
}
You’ll notice that the PRINT
flag is set automatically, so you won’t face with this problem in iText 7.
Click How to make sure a check box is printed? if you want to see how to answer this question in iText 5.