【发布时间】:2016-01-20 18:33:26
【问题描述】:
我在使用 iTextSharp 时遇到问题。我有一个包含表单字段的文档,并且我已经为签名生成了字段。当第一个人签署文件时,它工作正常。 Adobe Reader 显示有效签名。当我让第二个人在文档上签名时,Adobe Reader 显示签名 1 现在是“未知签名”并且签名无效。 Adobe阅读器显示:
其中包含的格式或信息有错误 签名(支持信息:SigDict /Contents 非法数据)
就 iTextSharp 而言,该项目用于执行签名。没有错误或异常。只有一个签名的文件不是问题。签名代码全部基于本文中答案的缩减代码: ITextSharp SetVisibleSignature not working as expected
我可以使用的最新版 iTextSharp 是 5.5.6。 5.5.7 有一个链接文章引用的错误。我尝试将这个项目降级到 5.5.5、5.5.4 和 5.4.2,我得到了相同的结果。有没有人对如何解决为什么 Adobe Reader 在应用 Rev. 2 签名后认为 Rev. 1 签名无效有任何建议?
【问题讨论】:
-
您是在附加模式下创建第二个、第三个等签名吗?不这样做会使之前的签名失效。
-
您引用的答案中
PdfStamper.CreateSignature(reader, outputStream, '\0', null, true);中的最终true很重要。 -
是的,它处于附加模式。
-
在这种情况下,请分享带有 2 个签名的毛皮分析结果 PDF。
-
@mkl,但是如果您不在附加模式下执行此操作,为什么会创建非法数据?使签名无效是有意义的,但破坏它没有意义。
标签: c# pdf itextsharp