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);
Everything looks great and is working well, until it comes to printing the PDF. When I click on File and Print, the check boxes don't show in the print preview, and also don't print.
There are two ways to create a check box.
There is the easy way, using the
There is the hard way, using the
For some reason you have chosen the hard way, and you are now complaining that the visibility is set to "Show on screen, not in print" instead of "Show on screen and in print".
The former ("Show on screen, not in print") is the default visibility setting when you create a check box the hard way. It corresponds with no flags being set.
The latter ("Show on screen and in print") is the default when creating a check box the easy way. In this case, the following flag is set automatically for your convenience.
As you have chosen the hard way to create a check box, you need to add the line that add the "Print flag" to your code yourself:
checkbox1.Flags = PdfAnnotation.FLAGS_PRINT;
Perfect, works a treat, many thanks for that Bruno.