Skip to main content
Skip table of contents

How to find out which fields are required?

I'm starting with new functionality in my android application which will help to fill certain PDF forms. I found out that the best solution will be to use iText library. I can read file, and read AcroFields from a document but is there any possibility to find out that specific field is marked as required?

Posted on StackOverflow on Feb 17, 2013 by weedget

Please take a look at section 13.3.4 of "iText in Action - Second Edition", entitled "AcroForms revisited". Listing 13.15 shows a code snippet from the InspectForm example that checks whether or not a field is a password or a multi-line field.

With some minor changes, you can adapt that example to check for required fields:

public void manipulatePdf(String src, String desttxt) throws IOException {
    OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(desttxt));
    PdfDocument pdfDoc = new PdfDocument(new PdfReader(src));
    PdfAcroForm form = PdfAcroForm.getAcroForm(pdfDoc, true);
    Map fields = form.getFormFields();
    PdfFormField item;
    for (String key : fields.keySet()) {
        out.write(key);
        item = fields.get(key);
        if (item.isRequired())
            out.write(" -> required");
        out.write('\n');
    }
    out.flush();
    out.close();
    pdfDoc.close();
}

Click How to find out which fields are required? 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.