0

编辑:链接到下面的测试文件。

作为项目的一部分,我在 LiveCycle Designer 11.0 中创建了动态 PDF 表单。这些表单在转发给开发人员之前设置为在 Acrobat 中启用阅读器。然后,他使用 iTextSharp 5.5.6 填充 PDF。

该表单具有许多动态属性,包括隐藏字段、动态子表单等。

当生成的表单在 Adob​​e Reader 11.0.12(我的版本,但其他版本受到影响)中打开时,表单是 a) 只读的并且 b) 不显示所有动态字段,即使已满足显示它们的条件他们已经充满了数据。显示了一些。

当它在 Adob​​e Acrobat 11.0.9 中打开时,表单按预期呈现。部分和字段根据表单的逻辑显示/隐藏。该表格也是可填写的,它不是只读的或展平的。

当我比较 Acrobat 和 Reader 中表单的安全设置时,Acrobat 中的“填写表单域”设置设置为“允许”,而在 Reader 的安全设置中设置为“不允许”。

这是一个包含以下内容的 zip 链接:1) 在 iTextSharp 中生成的动态 PDF 2) 为表单自动生成的类文件 3) 数据映射 Program.cs 文件

链接到显示问题的测试文件

当文件在 Acrobat 中打开时,它会按预期工作。当它在 Reader 中打开时,它变为只读并同时显示 SignatureA 和 SignatureB,此时根据在 Signature Test 部分中选择了哪个单选按钮,只应显示一个。

我无权访问代码库,因此无法最终测试应用程序。iTextSharp 中是否有任何设置可能导致此问题?

感谢您的任何帮助,您可以提供!

4

1 回答 1

4

您的 PDF 不会通过增量更新进行更新,这会破坏“启用阅读器”功能(由于完全重写,数字签名变得无效)。

您应在附加模式下创建 PdfStamper 实例:

iTextSharp.text.pdf.PdfStamper stamper = new iTextSharp.text.pdf.PdfStamper(reader, ms, '\0', true);
于 2015-09-15T08:53:57.207 回答