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

当我尝试使用Adobe LiveCycle ES4 Designer打开常规PDF( doesn't 包含 XFA form )时,它会提示一个窗口(新表单助手)并要求我选择我希望如何使用PDF . 选项是:

  • 使用固定页面创建交互式表单

  • 使用可流动布局创建交互式表单

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

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

我有两个问题 .

  • 我可以使用API打开常规PDF并添加XFA表单而不破坏原始PDF内容吗?

  • 如果第一个是可能的,我可以再次使用API将 invisible 字段添加到该PDF吗?

简而言之,我想要做的是将一个填充的XFA表单添加到常规PDF中,并且我正在询问是否可以使用API?

回答(2)

2 years ago

Adobe LiveCycle中没有允许您将XFAF(XFA前景)表单插入PDF的API .

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

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

只是提醒一句 . 这不是我认为LiveCycle Designer团队以外的很多人都尝试过的 . 如果你沿着这条路走下去,你就会开始跋涉 .

2 years ago

当您选择“创建具有固定页面的交互式表单”时,概念上发生的是您在现有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的表单的整个表现力 .

写下你的问题:

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

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