你好,我正在使用 pdftk 根据提交的表单生成 PDF。
我已经把一切都搞定了,直到在这里添加签名图片时出现问题。我正在使用 Signature Pad,它能很好地生成签名图片文件。现在,我正在尝试将该签名图片添加到 PDF 中。是否有人知道是否可以使用 pdftk 做到这一点?我没有看到这个选项。或者,是否可能将图片附加到我在 PDF 中拥有的表单字段?
你好,我正在使用 pdftk 根据提交的表单生成 PDF。
我已经把一切都搞定了,直到在这里添加签名图片时出现问题。我正在使用 Signature Pad,它能很好地生成签名图片文件。现在,我正在尝试将该签名图片添加到 PDF 中。是否有人知道是否可以使用 pdftk 做到这一点?我没有看到这个选项。或者,是否可能将图片附加到我在 PDF 中拥有的表单字段?
先将图像转换为PDF格式
convert image.png image.pdf
然后使用另一个免费工具pdfjam,按比例放大并偏移图像。
pdfjam --paper 'a4paper' --scale 0.3 --offset '7cm -12cm' image.pdf
然后使用 pdftk 工具合并这两个 PDF 文件。
pdftk text.pdf stamp image.pdf output combined.pdf
如果您需要将图片定位并添加到通用PDF中的一页,则可能需要下载STAMPtk,但这需要付费。
您可以从这里下载STAMPtk。
希望这能帮到您!
apt-get install texlive-extra-utils
,PDFtk: apt-get install pdftk
。 - exmaxxbrew install homebrew/tex/pdfjam
,PDFtk:目前不支持 Homebrew,但你可以在 SO 上找到安装指南,也可以使用官方下载页面 https://www.pdflabs.com/tools/pdftk-server/ 或这个链接(如果你使用的是 OSX 10.11.4,而 PDFtk 只是冻结并没有任何反应)https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk_server-2.02-mac_osx-10.11-setup.pkg。 - exmaxxpdftk text.pdf cat 5 output page5.pdf
来提取第5页,
然后使用pdftk page5.pdf stamp signature.pdf output signed.pdf
,
接着使用pdftk A=text.pdf B=signed-page5.pdf cat A1-4 B A6-end output signed-text.pdf
。
否则,请参见@Tanupryia下面的评论以添加空白页signature.pdf。 - Christophe Priieurexec("convert signature-image -resize 26% -transparent white -page a4+25+102 -quality 75 outputs/stamp.pdf");
描述:
2.然后执行以下命令:
exec("pdftk main.pdf multistamp stamp.pdf output outputs/final.pdf");
Python的pdfjinja
https://github.com/rammie/pdfjinja
这个库能够让你在PDF模板中添加图片到签名或按钮对象,无需合并或向量定位信息。
1. 向你的PDF模板添加签名元素
Adobe Pro允许创建和修改PDF可填写表单。转到工具>表单>编辑,然后从添加新字段下拉列表中选择数字签名。
放置后,转到数字签名元素的属性。
在提示工具的属性中添加内容。
{{ Sig | paste }}
保存并关闭。
2. 将您的签名图像保存为jpg或png格式
您可能需要一个单独的方法来检索签名作为图像,并将其放置在可访问的文件夹中。
3. 在您的Python脚本中添加方法
from pdfjinja import PdfJinja
pdf_jinja_object = PdfJinja("path_to_pdf_template")
filled_out_pdf = pdf_jinja_object({
'firstName': 'John',
'lastName': 'Smith',
'sig': 'path_to_signature_image',
})
filled_out_pdf.write(open("output_file.pdf", 'wb'))
os.path.join(dirname, './sig.png')
,尽管我无法使其工作。 - pmourelle首先将图片转换为PDF格式,命令如下:(Windows系统使用magick代替convert)
exec("convert signature-image -resize 26% -transparent white -page a4+25+102 -quality 75 outputs/stamp.pdf");
说明:
resize:调整图片大小。 transparent:使图片背景透明。 page:设置页面为A4大小,(25,102)指定图片PDF在左上角的位置。 2.然后执行以下命令:
exec("pdftk main.pdf multistamp stamp.pdf output outputs/final.pdf");
若要将签名定位到特定位置,请在签名PDF之前添加一些空白PDF,如下所示:
exec("convert signature-image -resize 26% -transparent white -page a4+25+102 -quality 75 outputs/stamp.pdf");
exec("convert xc:none -page A4 outputs/blank1.pdf");
exec("convert xc:none -page A4 outputs/blank2.pdf");
exec("convert xc:none -page A4 outputs/blank3.pdf");
exec("pdftk outputs/blank1.pdf outputs/stamp.pdf outputs/blank2.pdf outputs/blank3.pdf cat output outputs/sign.pdf");
exec("pdftk main.pdf multistamp outputs/sign.pdf output outputs/final.pdf");