如何使用Adobe LiveCycle API创建具有固定页面的交互式表单?

时间:2014-12-17 18:05:31

标签: adobe livecycle livecycle-designer xfa

当我尝试使用 Adob​​e LiveCycle ES4 Designer 打开常规PDF(包含 XFA表单)时提示窗口(新表单助手)并要求我选择我想要如何使用PDF。选项包括:

  • 使用固定页面创建交互式表单
  • 使用可流动布局创建交互式表单

我选择第一个并继续。然后,没有做任何事情我保存文件(使用另存为)。保存类型为' Acrobat(静态)PDF表单( .pdf)*',并且事实上这是此方案的唯一选项。保存文件后,我发现,虽然PDF阅读器中的两个文件在视觉上是相同的,但保存的文件和原始文件是不同的,因此,保存的文件包含XFA表单。在我的情况下,XFA表格如下:

<topmostSubform xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"/>

我有两个问题。

  1. 我是否可以打开常规PDF并在其中添加XFA表单 使用API​​破坏原始PDF内容?
  2. 如果第一个可能,我可以添加不可见字段 PDF,再次使用API​​?
  3. 简而言之,我想要做的是将填充的XFA表单添加到常规PDF中,并且我在使用API​​询问是否可行?

2 个答案:

答案 0 :(得分:1)

当您选择“创建具有固定页面的交互式表单”时,概念上发生的是您在现有PDF上创建XFA“叠加层”。您可以添加字段,但不能添加样板。

预期用例是,您拥有PDF格式的现有纸质表单,并且您希望快速向其中添加字段以使其具有交互性。您实际上是通过一些额外的XFA功能来扩充现有的PDF。由于图稿保留为PDF格式,因此未对其进行任何转换,并且它与原始未更改的文档保持一致。但是,您没有创建真正的XFA表单,因为只有字段以XFA格式定义,因此您无法将其存储为XDP。它只能以PDF格式重新保存。此外,由于PDF作品不会被分解为可移动的片段(即子形式),因此形式不能动态地增长/缩小。这就是为什么它只能保存为静态PDF。请参阅Adobe LiveCycle Designer帮助herehere

当您选择“使用可流动布局创建交互式表单”时,Designer会将PDF转换为XFA XML格式。您可以与设计进行交互,就像使用LiveCycle Designer从头开始创建所有内容一样。

由于此方法实际上将PDF图稿转换为XML,因此某些图稿可能无法完全相同地转换。可能需要一些手动修复才能使表单看起来与之前完全一样。一些复杂的PDF可能根本无法转换。可能无法使用字体等。同样,这也包含在Adobe LiveCycle Designer帮助here中。

后一种方法的好处是,您可以使用完整的XFA表单定义,可以在任何可以使用LiveCycle Designer中从头开发的表单的地方使用。可以对其进行修改以添加增长或缩小以匹配数据的动态部分。基于XFA的表格的整个表现力都被打开了。

写下你的问题:

  1. 您可以打开常规PDF并将XFA字段添加到表单中。然后,您可以使用这些字段捕获数据并将该数据保存为XML数据。

  2. 您也可以添加不可见的XFA字段。

答案 1 :(得分:1)

Adob​​e LiveCycle中没有允许您将XFAF(XFA前景)表单插入PDF的API。

然而,应该可以使用各种PDF库。您需要创建要添加的表单,然后使用PDF库(如iText,PDFBox或Big Faceless)将其插入PDF。插入有点棘手,因为XDP被分成PDF中的部分。我将使用LiveCycle Designer生成XFAF PDF,然后使用您打算重现该过程的相同PDF库进行检查。

在XFAF配置文件中没有明确排除presence属性,因此不可见的字段应该可以工作,但是我会首先使用LiveCycle Designer进行测试。如果你将不可见的字段添加到固定页面PDF并且它可以工作(即你测试生成的PDF - 我毫不怀疑它会让你添加它们但它可能不会让它们看不见)那么你应该能够使用以编程方式构建的XFAF PDF来模拟它。

请注意。这不是我认为LiveCycle Designer团队以外的很多人都尝试过的。如果你沿着这条路走下去,你将会走上这条路。