import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;
import com.lowagie.text.*;
import com.lowagie.text.pdf.*;
public class PdfHelper
{
public static void main(String[] args)
{
System.out.println("Textfield");
// step 1: creation of a document-object
Document document = new Document(PageSize.A4);
try
{
String fileName = "Temp/checkbox.pdf";
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(fileName));
document.open
();
PdfContentByte cb = writer.getDirectContent();
BaseFont font = BaseFont.createFont("Helvetica", "winansi", false);
writer.addAnnotation(getPdfCheckBox(writer, cb, "fieldName1", 10, font, 12, 170, 780, 10, 10, true));
}
catch(DocumentException de) {
System.err.println(de.getMessage());
}
catch(IOException ioe) {
System.err.println(ioe.getMessage());
}
catch(Exception ioe) {
System.err.println(ioe.getMessage());
}
document.close();
}
public static synchronized PdfFormField getPdfCheckBox( PdfWriter writer,
PdfContentByte cb,
String fieldName, // Acro field name
int maxLength, // Maximum characters you can fill in
BaseFont font,
float fontSize,
int x, // top left corner x-coordinate
int y, // top left corner y-coordinate
int width,
int height,
boolean isChecked) throws Exception
{
cb.moveTo(0, 0);
PdfAppearance tpOff = cb.createAppearance(width, height);
tpOff.rectangle(1, 1, width-2, height-2);
tpOff.stroke();
PdfAppearance tpOn = cb.createAppearance(width, height);
tpOn.rectangle(1, 1, width-2, height-2);
tpOn.setRGBColorFill(255, 255, 255);
tpOn.fillStroke();
tpOn.moveTo(1, 1);
tpOn.lineTo(width-1, height-1);
tpOn.moveTo(1, width-1);
tpOn.lineTo(height-1, 1);
tpOn.stroke();
Rectangle size = new Rectangle(x, y, x+width, y+height);
PdfFormField formField = PdfFormField.createCheckBox(writer);
formField.setWidget(size, PdfAnnotation.HIGHLIGHT_INVERT
);
formField.setFieldName(fieldName);
formField.setValueAsName("Off");
formField.setAppearanceState("Off");
formField.setFieldFlags(PdfFormField.FLAGS_PRINT);
if (isChecked)
formField.setAppearanceState("On");
formField.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", tpOff);
formField.setAppearance(PdfAnnotation.APPEARANCE_NORMAL
, "On", tpOn);
return formField;
}
}