我正在尝试使用族树填充PDF模板。根节点是后代,它分支到每对祖先。
我正在使用PDF压模来填充可以追溯到3代的形式。
我在Open Office 4.1.1中创建了上述表单。我使用表单设计模式添加了标签字段,并导出为PDF,并选中了“创建表单”并使用PDF格式(也尝试过FDF)。
以下是我的iTextG集成:
reader = new PdfReader( src );
stamper = new PdfStamper( reader, baos );
stamper.setFormFlattening( true );
form = stamper.getAcroFields();
xfa = form.getXfa();
Log.i("FamilyTreeStorage Form Type", ( xfa.isXfaPresent() )? "XFA Form":"AcroForm" );
Set<String> fields = form.getFields().keySet();
if ( !fields.isEmpty() ){
for( String key : fields ){
Log.i("FamilyTreeStorage", String.format("key= %s; type= %d;", key, form.getFieldType( key )) );
}
}else{
Log.i("FamilyTreeStorage", "AcroFields returned empty set.");
}
问题是form.getFields()确实在我从其他包含AcroForms的源文件中获取的PDF文档中正确读取了表单字段。我使用Open Office生成的PDF仅返回acro字段的空集。它认为没有形式。如何使用iTextG填充非acro表单?