Attach an image to an existing PDF at the right position
这就是问题,我们在网站上有很多供用户填写的pdf表单,每个pdf表单内都有一个提交按钮,可通过http post方法发送填充的数据。我们已经在做一个预先填写的表单,用户在html表单上填写一般信息,这些数据用于生成部分填充的多个pdf文件,因此,无论用户选择填写的pdf表单如何,所有这些重新生成具有他刚刚在html表单上键入的预填充信息的信息。我通过使用pdftk(http://www.pdflabs.com/docs/pdftk-man-page/)来完成此任务。但我们要指出的一点是,要使其更有效,用户必须能够在预填充表单阶段在html一侧绘制其签名,因此我们为此使用了签名板(http://thomasjbradley.ca / lab / signature-pad /),然后我们从插件生成的画布创建图像。但是,由于每个pdf都有自己的签名位置,因此我们必须在pdf中插入一个占位符,并将其替换为签名图像。因此,我想到了在pdf上创建一个名称为" signature"的禁用文本字段的想法,因此通过带有pdf2json模块(https://github.com/modesty/pdf2json)的nodejs应用程序,我可以解析pdf格式,并获取该特定字段的位置(x,y,w,h),从而能够在文本字段占位符上附加图像。所以问题是pdftk并没有给我支持将图像附加到现有pdf甚至没有附加到特定位置的支持,我试图找到一个使我能够做到这一点的nodejs模块,但是唯一值得的nodejs模块我发现的是pdfkit(http://pdfkit.org/),但是它只能创建一个新的pdf,不能编辑现有的pdf,我查看了pdfkit的源代码,并丢弃了它,因为我意识到对我的情况不起作用现有的pdf文件。因此,我走了很长一段路,到达了实现的最后阶段,走到了最后一步,使它能够正常工作,我只是堆栈。
这是我从node2的pdf2json模块获得的输出,可帮助使用占位符方法。
1 2 3 4 5 6 7 8 9 10 | { page: 7, index: 317, name: 'signature', type: 'alpha', x: 43.806640625, y: 14.64195833333333, w: 30.546828125000005, h: 1.9339166666666756 } |
如果有人知道我可以通过服务器上的unix命令运行的任何服务器应用程序,都可以将图像附加到现有的pdf文档上,那么它就可以满足我的需要,而不必是排他的nodejs模块。 >
不好。:我已经检查了adobe echosign产品,但是它不符合我们的需求,它不是免费的,并且不能解决我们将签名从单个html表单附加到多个pdf文件的问题。铅>
我意识到我可以使用nodejs模块pdfkit来生成一个新的空白PDF,其签名在正确的位置并且恰好在两个pdf上方,空白pdf的签名图像在顶部像邮票一样。我可以通过命令行使用pdftk做到这一点:
1 | pdftk form.pdf stamp signature.pdf output form-signed.pdf |
还有另一个我刚刚发现的免费应用程序工具(例如pdftk),它是pdfjam。另外,如果您不能使用nodejs模块pdfkit(与应用程序pdfkt不同)来生成带有正确位置图像的新pdf,则可以使用stampTK工具(http://www.pdflabs.com/tools/ stamptk-the-pdf-stamp-maker /),您可以通过命令行将图像解析为现有pdf中的图章,但是此工具是付费的(不多,而且值得),但是我拥有pdfkit用于nodejs的模块,使我能够与pdfkt应用程序一起免费执行该操作,我正在使用该模块,而且我还可以更好地控制nodejs的pdfkit模块上的多个签名。希望这个答案对某人有帮助。