2016-12-30 64 views
0

我有一个静态XFA PDF,我希望以编程方式填写。我可以使用Xfa.FillXfaForm()方法,这可以很好地更新XFA数据集DOM。但是,它不会更新相应的Acroform字段注释(静态XFA表单同时包含XFA表单和Acroform)。符合XFA标准的渲染器将读取并读取XML数据集Dom,但是,许多渲染器(例如Google Chrome和Firefox)都忽略了XFA字典,这意味着该表单不会显示在那里。 iText是否可以同步静态表单的Acroform和XFA值部分?我正在使用iTextSharp 5.使用iText填充静态XFA PDF

回答

1

我的回答和最好的建议是......不要!

如果您使用静态XFA 您主要关注的是有它在非Adobe观众始终显示你有机会获得一个像样的图书馆的工具,像iText的,你真的最好从PDF中剥离出XFA字典,然后处理AcroForm字段。一旦获得非XFA感知和XFA感知的查看者触摸PDF,确定哪一组数据是正确的集合是有问题的,并且字段值与外观可能不同步。任何FormCalc脚本和扩展字段都不会被非XFA查看器正确处理,因此完全没有XFA部分的优势。

在此过程中,您可以在XML输入和AcroForm字段名称之间构建映射并将其存储在文档元数据中,以便您的应用程序可以轻松填充表单,就好像它仍然是XFA一样,但您不需要担心在同一PDF中将数据与两种完全不同且不兼容的表单技术同步。 (老实说,我很想知道谁认为这是个好主意)