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

如何使用AdobeLiveCycle API创建具有固定页面的交互式表单?,adobe,livecycle,livecycle-designer,xfa,Adobe,Livecycle,Livecycle Designer,Xfa,当我尝试使用Adobe LiveCycle ES4 Designer打开常规PDF(其中不包含XFA表单)时,它会提示一个窗口(新表单助手),并要求我选择如何使用PDF。这些选择包括: 创建具有固定页面的交互式表单 创建具有可流动布局的交互式表单 我选择第一个并继续。然后,无需执行任何操作即可保存文件(使用“另存为”)。另存为类型为“Acrobat(静态)PDF表单(.PDF)*”,事实上,这是此场景的唯一选项。保存文件后,我发现,尽管PDF阅读器中的两个文件在视觉上是相同的,但保存的文件和

当我尝试使用Adobe 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"/>

关于这一点,我有两个问题

  • 我可以打开一个普通的PDF并向其中添加一个XFA表单吗 使用API破坏原始PDF内容
  • 如果第一个是可能的,我可以添加不可见的字段吗 PDF,再次使用API

  • 简言之,我想做的是将一个填充的XFA表单添加到一个常规PDF中,我想问一下是否可能,使用API?

    当您选择“创建一个具有固定页面的交互式表单”时,从概念上讲,您正在现有PDF上创建一个XFA“覆盖”。您可以添加字段,但不能添加样板

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


    当您选择“创建具有可流动布局的交互式表单”时,Designer正在将PDF转换为XFA XML格式。您可以像使用LiveCycle Designer从头开始创建一切一样与设计交互

    由于这种方法实际上是将PDF图片转换为XML,因此某些图片转换不完全相同的可能性更高。它可能需要一些手动修复,以使表单看起来与以前完全一样。一些复杂的PDF可能根本转换不好。字体可能不可用等。同样,Adobe LiveCycle Designer帮助中介绍了这一点

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

    请回答您的问题:

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

  • 您还可以添加不可见的XFA字段


  • AdobeLiveCycle中没有允许您将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团队之外的许多人都没有尝试过这一点。如果你沿着这条路走下去,你就会走得更远。

    你把我的问题搞错了。我知道我可以使用设计器做这些事情,我知道后端发生了什么,我想问的是,是否可以使用提供的API做这些事情。我想用程序来做这些事情。同样,我认为你问题的措辞让回答变得很困难。当你说“提供的API”时,你指的是哪种API?LiveCycle server提供了多种API,这在很大程度上取决于您购买的模块。而且,我还没有真正理解你想要实现的目标。当您说“将XFA表单添加到PDF内容”时,您是指添加一个只包含字段作为覆盖的XFA表单,还是将其作为样板文件?也许如果你能更详细地描述一下你的用例,我可以提供一种替代方法。我只需要一个API,它可以让我将XFA表单添加到PDF中。我想要XFA表单作为覆盖。如果你能帮忙,我会很高兴的。好的,我已经回去复习了你的一些我以前没见过的问题。我想我明白你现在想做什么。这很有启发性。iText的开发人员告诉我,使用它是做不到的,我会试试其他的