Android 如何使用iTextG读取非acroform PDF表单字段?
我正在尝试用族谱填充PDF模板。根节点是后代,它分支成每对祖先 我使用PDF压模来填充可以追溯到3代人的表单 我已在Open Office 4.1.1中创建了上述表格。我使用表单设计模式添加了标签字段,并将其导出为PDF,选中“创建表单”并使用PDF格式(也尝试了FDF) 以下是我的iTextG集成:Android 如何使用iTextG读取非acroform PDF表单字段?,android,forms,pdf,itext,Android,Forms,Pdf,Itext,我正在尝试用族谱填充PDF模板。根节点是后代,它分支成每对祖先 我使用PDF压模来填充可以追溯到3代人的表单 我已在Open Office 4.1.1中创建了上述表格。我使用表单设计模式添加了标签字段,并将其导出为PDF,选中“创建表单”并使用PDF格式(也尝试了FDF) 以下是我的iTextG集成: reader = new PdfReader( src ); stamper = new PdfStamper( reader, baos );
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.");
}
reader=新的PDF阅读器(src);
压模=新PdfStamper(读卡器,BAS);
母版。SetFormFlatting(真);
form=stamper.getAcroFields();
xfa=form.getXfa();
Log.i(“FamilyTreeStorage表单类型”,(xfa.isXfaPresent())?“xfa表单”:“AcroForm”);
Set fields=form.getFields().keySet();
如果(!fields.isEmpty()){
for(字符串键:字段){
Log.i(“FamilyTreeStorage”,String.format(“key=%s;type=%d;”,key,form.getFieldType(key));
}
}否则{
Log.i(“FamilyTreastorage”,“AcroFields返回空集”);
}
问题是form.getFields()确实可以正确读取PDF文档中的表单字段,这些文档是我从其他包含AcroForms的源中获取的。我用Open Office生成的PDF只返回acro字段的空集。它认为没有acro形式。如何使用iTextG填充非acro表单?请共享相关PDF。事实上:如果没有看到PDF,我们无法回答此问题,因为我们可以使用open office创建PDF表单,没有任何问题。我使用Acrobat Pro成功创建了相同的PDF。也许真正的问题是如何让OpenOffice包含Acro表单。如何将PDF添加到此帖子?将其上载到公众可访问的网站。您可以使用Dropbox的公用文件夹进行此操作。