PDFTK并删除XFA格式

时间:2015-04-14 17:34:46

标签: pdftk

从PDF表单中删除XFA格式是否有任何问题?我使用PDFTK填写表单,发现如果表单是XFA,那么除非我首先使用drop_xfa命令创建新的模板表单,否则PDFTK不起作用。我注意到的一件事是,如果我没有做drop_xfa,我可以看到在Acrobat Reader上预先填写的字段,而不是Acrobat Pro。像Ubuntu Document Viewer这样的其他视图也没关系。我不介意做drop_xfa,但只是检查我可能会遇到与我不了解的表格有关的问题。

示例:如果表单已填写,并且要在系统上读取该表单以获取要处理的字段/值。

提前谢谢。

1 个答案:

答案 0 :(得分:4)

PDF中有三种形式:

  • 使用AcroForm技术的表单。在这种情况下,每个字段对应于在特定页面上具有固定位置的一个或多个小部件。使用PDF语法描述表单。
  • 使用XML Forms Architecture(XFA)的动态表单。在这种情况下,PDF文件只是描述整个表单的XML文件的容器。我们将此称为动态 XFA,因为表单可以根据添加的数据进行扩展或缩小:通过添加更多数据,1页表单可以转换为100页表单。
  • 结合了AcroForm和XFA技术的混合形式。在这种情况下,表单被描述两次:一次使用PDF对象;一旦使用XML。显然,这样的表单不是动态的:AcroForm部分仍然定义了在特定页面上的绝对位置定义的窗口小部件注释。表单无法适应其数据。

如果您有动态XFA表单,则删除XML将删除完整表单。没有任何遗憾。

但是,您似乎遇到了由AcroForm和XFA语法组成的混合形式。混合形式是一种痛苦,因为它们经常导致混乱。例如:不支持XFA的查看器将向您显示存储在AcroForm中的数据。支持XFA的查看器可以优先考虑存储在XFA表单中的数据。你可能会问,问题是什么? Aren的两种形式都相同吗?

理想情况下,表单的两个版本确实相同,但是:

  • 如果表格没有正确填写,AcroForm可能与XFA表格不同。
  • XFA具有AcroForm技术的更多功能。例如:XFA表单中的文本字段可以对齐(类似于HTML中的<p align="justify">)。但是,此选项在AcroForm文本字段中不存在(您只能使用左对齐,居中对齐或右对齐)。因此,如果您的文本在XFA表单中是合理的,但您只查看AcroForm,则文本不合理(因为在AcroForm文本字段中不存在合理的文本)。

这是一个很长的答案来解释,如果你有一个混合形式,在大多数情况下 可以扔掉XFA部分。您可能会有一些细微差别,但如果您对Ubuntu文档查看器(一个不支持XFA的查看器)中的表单没问题,那么您应该没问题。

免责声明:我是iText集团的首席执行官。 Pdftk是基于过时且不再支持的iText版本的第三方工具。 iText Group不支持使用Pdftk。