找出填写pdf文件所需的字段

我开始使用我的Android应用程序中的新function,这将有助于填写某些PDF表单。

我发现最好的解决方案是使用iText库。

我可以读取文件,并从文档中读取AcroFields,但有没有可能发现特定字段被标记为必需?

我试图在API文档和Internet上找到此选项,但没有什么可以帮助解决此问题。

请查看我的书中标题为“AcroForms revisited”的第13.3.4节。 代码清单13.15显示了InspectForm示例中的代码片段,该代码片段检查字段是密码还是多行字段。

通过一些小的更改,您可以调整该示例以检查必填字段:

for (Map.Entry 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"); } 

检查必填字段而不循环使用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 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"); }