0

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

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

最终我想要的是有一个如下所示的 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

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

4

1 回答 1

0

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

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

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

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

  1. 生成一个动态 PDF,该 PDF 捕获表单中所需的所有数据(包括表单所需的签名数量)。捕获所需签名数量的一种方法是使用动态表添加包含只读签名字段的行。
  2. 使用动态 PDF 捕获所有数据,然后将该数据提交回服务器。
  3. 通过将提交的数据与服务器上的 XDP 合并生成静态 PDF。静态版本是要签名的版本。在这个版本中,动态表的添加/删除按钮是隐藏的,除了签名之外的所有字段都是只读的。此版本上的签名字段被标记为“开放”。
  4. 用户现在可以像签署任何其他静态 PDF 一样签署签名字段。

您可以通过服务器上的RenderAtClient 标志或 LiveCycle Designer 中表单属性中的 PDF 呈现格式来控制表单呈现为动态还是静态。

于 2014-12-13T17:55:18.337 回答