【发布时间】:2014-02-28 00:08:11
【问题描述】:
所以,事情就是这样,我们网站上有一堆 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上创建一个名为“签名”的禁用文本字段的想法,所以通过一个带有pdf2json模块(https://github.com/modesty/pdf2json)的nodejs应用程序,我可以解析pdf表单并获取位置(x ,y,w,h) 的特定字段,能够在文本字段占位符上附加图像。 所以问题是 pdftk 不支持我将图像附加到现有 pdf 或什至将其附加到某个位置,我试图找到一个 nodejs 模块可以让我做到这一点,但唯一的我发现的值得的 nodejs 模块是 pdfkit (http://pdfkit.org/) 但它只适用于创建一个新的 pdf,而不是编辑一个现有的,我查看了 pdfkit 源代码并丢弃了它,因为我意识到它不会工作我的现有pdf案例。 所以我走了很长一段路,到了这个实现的最后阶段,到了最后一步才能让它工作,我只是堆栈。
这是我从 nodejs 的 pdf2json 模块获得的输出,它有助于使用占位符方法。
{
page: 7,
index: 317,
name: 'signature',
type: 'alpha',
x: 43.806640625,
y: 14.64195833333333,
w: 30.546828125000005,
h: 1.9339166666666756
}
如果有人知道任何服务器应用程序,我可以通过我的服务器上的 unix 命令运行以将图像附加到现有的 pdf 文档上,它会满足我的需求,不需要是专门的 nodejs 模块。
Obs.:我已经检查了 adobe echosign 产品,但它不符合我们的需求,它不是免费的,也不能解决我们从单个 html 表单将签名附加到多个 pdf 文件的问题。
【问题讨论】: