在javascript中将签名字段添加到pdf

问题描述

在寻找解决方案数小时后,我决定在 stackoverflow 上提出我的第一个问题。

我们的应用程序使用 pdf-lib (https://www.npmjs.com/package/pdf-lib) 来修改现有的 PDF,例如添加图像。我们现在正在寻找一种方法来将签名表单字段也添加到 PDF 中。 使用 pdf-lib,可以添加一堆表单字段,签名字段除外。可以获取它们 (https://pdf-lib.js.org/docs/api/classes/pdfform#getsignature),但与其他字段不同的是,没有创建方法(例如 https://pdf-lib.js.org/docs/api/classes/pdfform#createtextfield)。

我深入研究了代码,发现可以访问 PDFForms AcroForm (https://pdf-lib.js.org/docs/api/classes/pdfform#acroform)。可以使用它添加字段,但我无法事先创建正确的字段(我认为它必须是 PDFSignature 或 PDFAcroSignature)。

我发现 PDFAcroText 等其他字段也有 create 方法

  class PDFAcroText extends PDFAcroTerminal {
  static fromDict = (dict: PDFDict,ref: PDFRef) => new PDFAcroText(dict,ref);

  static create = (context: PDFContext) => {
    const dict = context.obj({
      FT: 'Tx',Kids: [],});
    const ref = context.register(dict);
    return new PDFAcroText(dict,ref);
  };

那些被包装函数调用的(比如前面提到的 createTextfield):

createTextField(name: string): PDFTextField {
    assertIs(name,'name',['string']);
    const nameParts = splitFieldName(name);

    const parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);

    const text = PDFAcroText.create(this.doc.context);
    text.setPartialName(nameParts.terminal);

    addFieldToParent(parent,[text,text.ref],nameParts.terminal);

    return PDFTextField.of(text,text.ref,this.doc);
  }

我寻找了其他可以添加签名表单字段的 js 库,但我无法找到答案 - 除了付费使用 pdfjs.express 之类的库。

假设他们能够添加这样的字段,那么一定有办法做到这一点!

如果你们中有人想出如何做到这一点,或者是否有其他解决方案,请告诉我。

先谢谢你!

您好 亚历克斯

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)