[英]Add Signature field to pdf in javascript
经过数小时寻找解决方案后,我决定在 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 等其他字段有创建方法
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 之类的库。
假设他们能够添加这样的字段,那么一定有办法做到这一点!
如果你们中的任何人想出如何做到这一点,或者是否有其他解决方案,请告诉我。
先感谢您!
问候亚历克斯
Acrobat PRO 本身没有放置直接“签名”字段的选项。 您可以“请求”签名,但只能使用 Adobe 的服务,并且需要 email。
如果您打算通过代码添加签名,请查看他们的“填写表单”示例。 他们将图像放在按钮字段的顶部,但图像字段也可以。
const signatureImageField2 = form.getButton('button-signature-field')
signatureImageField2.setImage(signatureImage)
const factionImageField = form.getField('image-signature-field_af_image')
factionImageField.setImage(signatureImage)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.