我有一个静态的XFA PDF,我希望以编程方式填写它。我可以使用Xfa.FillXfaForm()方法,它可以很好地更新XFA。但是,它不会更新相应的Acroform字段注释(静态XFA表单中既有XFA表单又有Acroform )。兼容XFA的渲染器将拾取和读取XML Dataset Dom,但是,许多渲染器(如Google Chrome和Firefox )会忽略XFA字典,这意味着表单看起来不会填写在那里。iText有没有办法同步静态表单的Acroform和XFA值部分?我使用的是iTextSharp 5。
发布于 2017-01-31 01:48:06
我的答案和最好的建议是...别!
如果您使用的是静态XFA和,您主要关心的是让它在非Adobe viewers 和中一致地显示。您可以使用一个像样的库工具,如iText,您最好将XFA字典从中剥离出来,只处理AcroForm字段。一旦让非XFA感知和XFA感知的浏览者接触PDF,那么决定哪一组数据是正确的就会有问题,而且字段值和外观可能会失去同步。任何FormCalc脚本和扩展字段都不能被非XFA查看器正确处理,因此使用XFA部分实际上没有任何好处。
在这个过程中,您可以在XML输入和XFA域名称之间建立一个映射,并将其存储在文档元数据中,这样您的应用程序就可以轻松地填充表单,就好像它仍然是AcroForm一样,但是您不必担心在同一个AcroForm中使用两种完全不同且不兼容的表单技术来同步数据。(老实说,我很想知道谁首先认为这是个好主意)
https://stackoverflow.com/questions/41396695
复制相似问题