finding out required fields to fill in pdf file

后端 未结 2 1698
伪装坚强ぢ
伪装坚强ぢ 2021-01-21 12:19

I\'m starting with new functionality in my android application which will help to fill certain PDF forms.

I find out that the best solution will be to use iText library.

相关标签:
2条回答
  • 2021-01-21 12:57

    check required fields without looping for itext5.

            String src = "yourpath/pdf1.pdf";
            String dest = "yourpath/pdf2.pdf";
    
            PdfReader reader = new PdfReader(src);
            PdfStamper stamper = new PdfStamper(this.reader, new FileOutputStream(dest));
    
            AcroFields form = this.stamper.getAcroFields();
            Map<String,AcroFields.Item> fields = form.getFields();
            AcroFields.Item item;
            PdfDictionary dict;
            PdfNumber flags;
            item=fields.get("fieldName");
            dict = item.getMerged(0);
            flags = dict.getAsNumber(PdfName.FF);
            if (flags != null && (flags.intValue() & BaseField.REQUIRED) > 0) 
            {
                    System.out.println("flag  has set");
            }   
    
    0 讨论(0)
  • 2021-01-21 13:05

    Please take a look at section 13.3.4 of my book, 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:

    for (Map.Entry<String,AcroFields.Item> entry : fields.entrySet()) {
        out.write(entry.getKey());
        item = entry.getValue();
        dict = item.getMerged(0);
        flags = dict.getAsNumber(PdfName.FF);
        if (flags != null && (flags.intValue() & BaseField.REQUIRED) > 0)
            out.write(" -> required\n");
    }
    
    0 讨论(0)
提交回复
热议问题