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?

31st May 2016
admin-marketing

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 this link if you want to see how to answer this question in iText 5.


Share this article

Contact

Still have questions? 

We're happy to answer your questions. Reach out to us and we'll get back to you shortly.

Contact us
Stay updated

Join 11,000+ subscribers and become an iText PDF expert by staying up to date with our new products, updates, tips, technical solutions and happenings.

Subscribe Now