Skip to main content
Skip table of contents

How to create radio buttons inside a table?

How do I use iText 7 to create a table with a radio button inside?

I know how to create a table and I know how to add a radio field using Rectangle objects that define the position of the radio buttons on the page. What I don't know, is how to make sure that these radio buttons appear inside my table.

Posted on StackOverflow on Oct 30, 2015 by Vikash

Please take a look at the CreateRadioInTable example.

In this example, we create a PdfButtonFormField for the radio group and we add it after constructing and adding the table:

PdfButtonFormField group = PdfFormField.createRadioGroup(pdfDoc, "Language", "English");
Table table = new Table(2);
// add cells
table.addCell(cell);
doc.add(table);
PdfAcroForm form = PdfAcroForm.getAcroForm(pdfDoc, true);
form.addField(group);

When we create the cells for the radio buttons, we set a renderer, for instance:

cell.setNextRenderer(new MyCellRenderer(cell, group, "english"));

The renderer looks like this:

private class MyCellRenderer extends CellRenderer {
    protected String value;
    protected PdfButtonFormField radioGroup;
    public MyCellRenderer(Cell modelElement, PdfButtonFormField radioGroup, String fieldName) {
        super(modelElement);
        this.radioGroup = radioGroup;
        this.value = fieldName;
    }
    @Override
    public void draw(DrawContext drawContext) {
        PdfFormField.createRadioButton(drawContext.getDocument(), getOccupiedAreaBBox(), radioGroup, value);
    }
}

Click How to create radio buttons inside a table? if you want to see how to answer this question in iText 5.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.