在PDF文档中创建签名字段

时间:2019-05-08 10:12:27

标签: pdf pdf-generation pdfmake node-pdfkit

我必须在使用PDFmake的位置创建一个PDF文件。但是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文件中单击签名框将触发签名过程。

现在,我的问题是,新文档中我缺少什么?

1 个答案:

答案 0 :(得分:0)

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对象。如果偶然在文本编辑器中进行复制和粘贴,请格外小心!确保您的编辑器可以处理任意文件内容(甚至非文本内容)并且不会损坏它们。并绝对更新交叉引用表或流以匹配您的编辑已实现的偏移量更改。

相关问题