我想在PDF中的多个位置放置相同的外部签名签名容器(签名值)。
我已经推荐过这个页面' How to place the Same Digital signatures to Multiple places in PDF using itextsharp.net'。
在使用上述解决方法时,我观察到每当我尝试在4-5次单页上放置多个签名时,它就无法工作。始终只显示一个有效的签名字段,其他字段显示为无符号(无符号的PDF表单字段)。所以无法理解这个问题。
现在我想知道是否有任何参考资料可用于查看PdfLiteral和PdfIndirectReference的工作原理?我已经浏览了itextsharp参考文档,但无法获得足够的信息。除此之外,是否可以在PDF中添加多少注释/签名字段? 如果我必须使用BlankSignatureContainer和MakeSignature.SignDeferred那么签名将如何附加到所有字段,因为在,
MakeSignature.SignDeferred(pdfreader, "Sig", output, externalcontainer)
我们只需传递一个签名字段名称。
谢谢。
答案 0 :(得分:1)
你要求mkl写的东西:
注意:虽然此过程会创建不违反的内容 PDF规范的字母(仅禁止案件 从多个页面引用相同的字段对象,无论如何 通过相同或通过不同的小部件),它显然违反了它 意图,其精神。因此,该程序也可能被禁止作为规范的勘误表文件的一部分。
实际上,您所要求的确实违反了规范。请参阅PDF标准的第12.7.5.5节:
请允许我重复此屏幕截图的最后一行:
签名字段永远不会引用多个注释。
这句话中有一个 ,不是应该的。应该不是规范性的。这意味着你应该或不应该做某事,但如果不这样做,你就不会违反规范。不尊重PDF文档中违反PDF规范的结果,严格意义上的结果不是真正的PDF文件。
这是您不想去的路径,因为违反PDF规范会使您无权使用Adobe拥有的一系列PDF专利。 Adobe拥有可供所有人免费使用的专利(永久,非独家,免版税,......)条件您尊重ISO规范。
因此,除了建议放弃您的要求外,请不要期望回答您的问题。符合PDF规范的PDF查看器不会期望将单个签名放置在不同的位置,因为规范不允许这样做,因此即使您调整软件以为单个签名创建多个窗口小部件注释/外观字段,无法保证PDF查看器能够理解您要执行的操作。