调用iText的form.flattenFields()时抛出StructureElement shall contain parent object异常的问题咨询
调用iText的form.flattenFields()时抛出StructureElement shall contain parent object异常的问题咨询
大家好,我最近在处理PDF表单的过程中遇到了一个棘手的问题,想请教一下社区的各位大佬:
我的业务流程是这样的:通过AEM生成PDF模板,接着用iText给模板中的文本字段填充数据,数据填充这一步是完全正常的,但当我尝试调用form.flattenFields()来扁平化PDF的时候,却抛出了以下异常:
com.itextpdf.kernel.PdfException: StructureElement shall contain parent object. at com.itextpdf.kernel.pdf.tagutils.TagTreePointer.setCurrentStructElem(TagTreePointer.java:718) ~[kernel-7.1.12.jar:?] at com.itextpdf.kernel.pdf.tagutils.TagStructureContext.removeAnnotationTag(TagStructureContext.java:342) ~[kernel-7.1.12.jar:?] at com.itextpdf.forms.PdfAcroForm.flattenFields(PdfAcroForm.java:658) ~[forms-7.1.12.jar:?]
补充一下模板的情况:模板里只有文本字段,原本还有一段JavaScript逻辑用来隐藏/显示空字段,我知道iText不识别这类JS,所以已经把这段逻辑移除后重新测试,但还是会抛出同样的异常。
我现在怀疑问题出在PDF模板的生成环节——我是通过AEM的LiveCycle Designer打开XDP文件后,用“另存为”的方式生成PDF的。想问问大家:有没有其他更可靠的方式从XDP生成能兼容iText扁平化操作的PDF?或者针对这个异常,还有什么其他排查或解决的建议吗?
备注:内容来源于stack exchange,提问作者ThinkCode
相关产品推荐
相关产品推荐

