Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用iTextG读取非acroform PDF表单字段?_Android_Forms_Pdf_Itext - Fatal编程技术网

Android 如何使用iTextG读取非acroform PDF表单字段?

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 );

我正在尝试用族谱填充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.");
            }
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的公用文件夹进行此操作。