使用 iText 填写静态 XFA PDF
Posted
技术标签:
【中文标题】使用 iText 填写静态 XFA PDF【英文标题】:Filling out a Static XFA PDF using iText 【发布时间】:2016-12-30 13:01:43 【问题描述】:我有一个静态 XFA PDF,我希望以编程方式填写。我可以使用 Xfa.FillXfaForm() 方法,这可以很好地更新 XFA 数据集 DOM。但是,它不会更新相应的 Acroform 字段注释(静态 XFA 表单内部既有 XFA 表单也有 Acroform)。一个符合 XFA 的渲染器会拾取并读取 XML 数据集 Dom,但是,许多渲染器(如 Google Chrome 和 Firefox)会忽略 XFA 字典,这意味着表单不会在那里填写。 iText 有没有办法同步静态表单的 Acroform 和 XFA 值部分?我正在使用 iTextSharp 5。
【问题讨论】:
【参考方案1】:我的回答和最好的建议是......不要!
如果您使用的是静态 XFA和,您主要关心的是让它在非 Adobe 查看器中始终显示和 您可以访问像 iText 这样的体面的库工具,您最好将 XFA 字典从 PDF 中剥离出来,只处理 AcroForm 字段。一旦您让非 XFA 感知和 XFA 感知查看器接触 PDF,确定哪组数据是正确的数据集是有问题的,并且字段值与外观可能会不同步。非 XFA 查看器无法正确处理任何 FormCalc 脚本和扩展字段,因此拥有 XFA 部分确实没有任何优势。
在此过程中,您可以在 XML 输入和 AcroForm 字段名称之间构建映射,并将其存储在文档元数据中,这样您的应用程序就可以轻松填充表单,就好像它仍然是 XFA,但您无需担心关于在同一个 PDF 中使用两种完全不同且不兼容的表单技术同步数据。 (老实说,我很想知道谁认为这是一个好主意)
【讨论】:
以上是关于使用 iText 填写静态 XFA PDF的主要内容,如果未能解决你的问题,请参考以下文章