我有一个带有acroform字段的pdf,现在我需要找到相应的PDField Objects。 为此,我使用此代码
public PDField getPDFieldWithName(final String fieldname){
PDDocumentCatalog docCatalog = pdDocument.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();
return acroForm.getFields().stream()
.filter( x -> x.getPartialName().equalsIgnoreCase(fieldname))
.findFirst()
.get();
}
这适用于普通字段,但如果pdfs上的字段用点分组并且使用其中一个字段,则它不起作用。
正如我可以看到PDFBox处理像PDNonTerminalField这样的字段,是否有一种简单的方法来获取最新的孩子并检查它?
在我的表单上有一个名为Test.foo.bar的字段,当我使用上面的方法搜索名称为" Test.foo.bar"它找不到它
java.util.NoSuchElementException: No value present
答案 0 :(得分:1)
getFields
仅返回根字段。更好的解决方案是致电getFieldIterator()
。或者,如果您有全名,请致电getField(fullyQualifiedName)
。