如何使用Adobe LiveCycle将文档签名添加到动态表中?

时间:2014-12-07 23:28:31

标签: livecycle livecycle-designer

我有一个表格,我通过添加+或 - 按钮动态添加行来添加或删除要添加到表格中的行。

现在我有一个名字字段和一个电子签名字段。我遇到的问题是文档签名不可重复/需要是唯一的,因此无法添加到动态表中?有解决方法吗?

最终我想要的是PDF表格如下所示:

+ -
First Name | Last Name | Signature
First Name |  Last Name | Signature

当用户点击上面表单中的+时,它只会添加一个新行,如:

+ -
First Name | Last Name | Signature
First Name |  Last Name | Signature
First Name |  Last Name | Signature

问题是电子签名是一个新实例,它说它不可重复?我希望这些是不同的签名,但在一个表格上动态添加。这有意义吗?我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

不幸的是,数字签名和动态表单通常是不兼容的。签署PDF时,将获取PDF的哈希值,然后使用签名者的证书进行签名。这可确保对PDF的任何更改都会使签名无效。

动态PDF基本上是在每次加载表单时和/或每次表单更改时从XDP表单定义重新构建PDF。这会导致任何数字签名无效。

现在有一些方法可以在将要签名的表单中完成一定级别的动态行为。动态XDP可以在服务器上呈现为静态PDF。由于它们到达客户端时是静态的,因此可以签名。

此方法要求您知道在呈现PDF之前需要多少个签名字段。最常见的方法是在服务器上执行多个渲染,如下所示:

  1. 生成动态PDF,捕获表单中所需的所有数据(包括表单所需的签名数)。捕获所需签名数量的一种方法是使用动态表来添加包含只读签名字段的行。
  2. 使用动态PDF捕获所有数据,然后将该数据提交回服务器。
  3. 通过将提交的数据与服务器上的XDP合并来生成静态PDF。静态版本是要签名的版本。在此版本中,动态表的添加/删除按钮被隐藏,除签名之外的所有字段都是只读的。此版本的签名字段标记为“打开”。
  4. 用户现在可以像对待任何其他静态PDF一样对签名字段进行签名。
  5. 您可以通过服务器上的RenderAtClient flag或LiveCycle Designer中表单属性中的PDF呈现格式来控制表单是呈现为动态还是静态。