【问题标题】:Creating a Signature Field in PDF Documents在 PDF 文档中创建签名字段
【发布时间】:2019-05-08 10:12:27
【问题描述】:

我必须创建一个 PDF 文件,在其中使用 PDFmake 来实现这一点。但是 PDFmake 没有在文档中添加签名字段的功能。

所以我打开了一个带有签名字段的示例 PDF 并复制了包含签名字段名称的对象:

2 0 obj
<</F 4/Type/Annot/Subtype/Widget/Rect[294 465 470 420]/FT/Sig/DA(/Helv 0 Tf 0 g)/T(Signature2)/P 2 0 R>>
endobj

当我将它粘贴到新文档中时,它会显示 Rect,但是当我单击它时,会出现错误“无法签署文档”。 (粗略翻译)点击示例 PDF 文件中的签名框会触发签名过程。

现在,我的问题是,我在新文档中遗漏了什么?

【问题讨论】:

    标签: pdf pdf-generation signature pdfmake node-pdfkit


    【解决方案1】:
    2 0 obj
    <</F 4/Type/Annot/Subtype/Widget/Rect[294 465 470 420]/FT/Sig/DA(/Helv 0 Tf 0 g)/T(Signature2)/P 2 0 R>>
    endobj
    

    最后一个条目/P 2 0 R 不合适:P 的值应该是对与此注释关联的页面对象的间接引用。 但显然字段对象本身是对象2 0,显然不是页面对象。

    因此,将 P 值更改为指向相关页面对象。或者完全放弃它,对于表单字段小部件注释,它是可选的。

    您可能考虑或尚未考虑的其他细节:

    • 该字段没有条目。因此,它是一个根字段。因此,它必须添加到 AcroForm 字典中的 Fields 数组中。
    • 该字段与其小部件注释合并。作为小部件注释,它应从其页面的 Annots 数组中引用。
    • 该字段名为“Signature2”。因此,请确保您的 PDF 中没有其他具有该名称的表单域。

    您谈到在文档之间复制和粘贴 PDF 对象。如果您的意思是在文本编辑器中复制和粘贴,请务必小心!确保您的编辑器可以处理任意文件内容(甚至是非文本内容)并且不会损坏它们。并且一定要更新交叉引用表或流以匹配您的编辑所影响的偏移量更改。

    【讨论】:

    • 如果上述措施不起作用,请分享您的 PDF 的二进制副本以供分析。
    猜你喜欢
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 2011-10-15
    相关资源
    最近更新 更多