您好我使用pdftk根据提交的表单生成PDF。
直到这里我一切正常。这是添加签名的图像。我正在使用签名板,它可以很好地生成签名的图像文件。现在我想将该签名图像添加到PDF中?有谁知道这是否甚至可以用pdftk做?我没有看到这样做的选择。或者,如果它甚至可以将图像附加到我在PDF中提交的表单中吗?
答案 0 :(得分:28)
首先将图像转换为PDF
convert image.png image.pdf
然后使用pdfjam(另一个免费工具)放大并偏移图像
pdfjam --paper 'a4paper' --scale 0.3 --offset '7cm -12cm' image.pdf
然后使用pdftk
组合两个PDFpdftk text.pdf stamp image.pdf output combined.pdf
如果您需要定位图像并将其添加到普通PDF中的一个页面,则可能需要下载STAMPtk,但是您必须为此付费。
您可以从这里下载STAMPtk http://www.pdflabs.com/tools/stamptk-the-pdf-stamp-maker/
我希望它有所帮助!
答案 1 :(得分:2)
pdfjinja for Python
https://github.com/rammie/pdfjinja
此库允许您将图像添加到PDF中的签名或按钮对象,而无需合并或矢量位置信息。
<强> 1。将签名元素添加到PDF模板
Adobe Pro允许创建和修改PDF可填写表单。转到工具&gt;表单&gt;编辑,然后从添加新字段下拉列表中选择数字签名。
放置后,转到数字签名元素的属性。
在Tooltip属性中,添加
{{ 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'))
这应该会为您提供一张表格,其中您的签名图像会放置在模板中创建的位置。
答案 2 :(得分:1)
在我们的情况下,我们必须在pdf中添加动态签名。我已经使用pdftk和imagemagick库实现了它。 (需要安装pdftk和imagemagick)
exec(“转换签名图像-调整大小26%-透明白-a4 + 25 + 102-质量75输出/stamp.pdf”);
说明:
2。然后执行以下命令:
exec(“ pdftk main.pdf multistamp stamp.pdf output output / final.pdf”);
答案 3 :(得分:0)
首先将图像转换为pdf格式为:(使用magick而不是Windows转换) exec(“转换签名图像-调整大小26%-透明白色-a4 + 25 + 102-质量75输出/stamp.pdf”);
说明:
调整大小:调整图像的大小。 透明使图像背景透明 page:将页面设置为a4,(25,102)设置图像pdf的位置,从左到上。 2.然后执行以下命令:
exec(“ pdftk main.pdf multistamp stamp.pdf output output / 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");