public override void Draw(DrawContext drawContext) { Rectangle position = GetOccupiedAreaBBox(); PdfAcroForm form = PdfAcroForm.GetAcroForm(drawContext.GetDocument(), true); // Define the coordinates of the middle float x = (position.GetLeft() + position.GetRight()) / 2; float y = (position.GetTop() + position.GetBottom()) / 2; // Define the position of a check box that measures 20 by 20 Rectangle rect = new Rectangle(x - 10, y - 10, 20, 20); // The 4th parameter is the initial value of checkbox: 'Yes' - checked, 'Off' - unchecked // By default, checkbox value type is cross. PdfButtonFormField checkBox = PdfFormField.CreateCheckBox(drawContext.GetDocument(), rect, this.name, "Yes"); switch (checkboxTypeIndex) { case 0: { checkBox.SetCheckType(PdfFormField.TYPE_CHECK); // Use this method if you changed any field parameters and didn't use setValue checkBox.RegenerateField(); break; } case 1: { checkBox.SetCheckType(PdfFormField.TYPE_CIRCLE); checkBox.RegenerateField(); break; } case 2: { checkBox.SetCheckType(PdfFormField.TYPE_CROSS); checkBox.RegenerateField(); break; } case 3: { checkBox.SetCheckType(PdfFormField.TYPE_DIAMOND); checkBox.RegenerateField(); break; } case 4: { checkBox.SetCheckType(PdfFormField.TYPE_SQUARE); checkBox.RegenerateField(); break; } case 5: { checkBox.SetCheckType(PdfFormField.TYPE_STAR); checkBox.RegenerateField(); break; } } form.AddField(checkBox); }