在签署PDF时将签名放在同一页面上的多个位置

时间:2018-03-23 09:42:24

标签: c# itext

我想在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)

我们只需传递一个签名字段名称。

谢谢。

1 个答案:

答案 0 :(得分:1)

你要求mkl写的东西:

  

注意:虽然此过程会创建不违反的内容   PDF规范的字母(仅禁止案件   从多个页面引用相同的字段对象,无论如何   通过相同或通过不同的小部件),它显然违反了它   意图,其精神。因此,该程序也可能被禁止作为规范的勘误表文件的一部分。

实际上,您所要求的确实违反了规范。请参阅PDF标准的第12.7.5.5节:

enter image description here

请允许我重复此屏幕截图的最后一行:

  

签名字段永远不会引用多个注释。

这句话中有一个 ,不是应该的。应该不是规范性的。这意味着你应该或不应该做某事,但如果不这样做,你就不会违反规范。不尊重PDF文档中违反PDF规范的结果,严格意义上的结果不是真正的PDF文件。

这是您不想去的路径,因为违反PDF规范会使您无权使用Adobe拥有的一系列PDF专利。 Adobe拥有可供所有人免费使用的专利(永久,非独家,免版税,......)条件您尊重ISO规范。

因此,除了建议放弃您的要求外,请不要期望回答您的问题。符合PDF规范的PDF查看器不会期望将单个签名放置在不同的位置,因为规范不允许这样做,因此即使您调整软件以为单个签名创建多个窗口小部件注释/外观字段,无法保证PDF查看器能够理解您要执行的操作。