使用pdftk将图像添加到pdf

Bra*_*nut 12 php pdf-generation pdftk

您好我正在使用pdftk根据提交的表单生成PDF.

直到这里我一切正常.这是添加签名的图像.我正在使用签名板,它可以很好地生成签名的图像文件.现在我想将该签名图像添加到PDF中?有谁知道这是否甚至可以用pdftk做?我没有看到这样做的选择.或者,如果它甚至可以将图像附加到我在PDF中提交的表单中?

Sal*_*ual 30

首先将图像转换为PDF

convert image.png image.pdf
Run Code Online (Sandbox Code Playgroud)

然后使用pdfjam(另一个免费工具)放大并偏移图像

pdfjam --paper 'a4paper' --scale 0.3 --offset '7cm -12cm' image.pdf
Run Code Online (Sandbox Code Playgroud)

然后使用pdftk组合两个PDF

pdftk text.pdf stamp image.pdf output combined.pdf
Run Code Online (Sandbox Code Playgroud)

如果您需要定位图像并将其添加到普通PDF中的一个页面,则可能需要下载STAMPtk,但是您必须为此付费.

您可以从这里下载STAMPtk http://www.pdflabs.com/tools/stamptk-the-pdf-stamp-maker/

我希望它有所帮助!

  • 只需为Linux添加安装说明(非常简单).PDFjam:`apt-get install texlive-extra-utils`,PDFtk:`apt-get install pdftk`. (2认同)
  • 以及**Mac**的安装说明.***PDFjam***:`brew 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 (2认同)
  • 我经常看到这种类型的答案,但对我来说,将PDF分成几页,签署您想要的页面,然后重新组合似乎更直接? (2认同)

Tan*_*iya 8

在我们的例子中,我们必须在 pdf 中添加动态签名。我已经使用 pdftk 和 imagemagick 库实现了它。(需要安装 pdftk 和 imagemagick)

  1. 首先将图像转换为 pdf 为:(使用 magick 而不是 convert for windows)

exec("转换签名图像-resize 26%-透明白色-page a4+25+102-quality 75 输出/stamp.pdf");

说明:

  • 调整大小:调整图像的大小。
  • 透明使图像背景透明
  • page : 将 page 设置为 a4 和 (25,102) 从左到上设置图像 pdf 的位置。

2.然后执行以下命令:

exec("pdftk main.pdf multistamp stamp.pdf 输出输出/final.pdf");

  • 为此,您必须添加 3 个空白 pdf 并将其与stamp.pdf 结合 (2认同)

Jer*_*ger 7

Python 的 pdfjinja

https://github.com/rammie/pdfjinja

该库允许您将图像添加到 PDF 中的签名或按钮对象,而无需合并或矢量位置信息。

1. 将签名元素添加到您的 PDF 模板中

Adobe Pro 允许创建和修改 PDF 可填写表格。转到“工具”>“表单”>“编辑”,然后从“添加新字段”下拉列表中选择“数字签名”。

放置后,转到数字签名元素的属性。

属性设置

在工具提示属性中,添加

{{ Sig | paste }}
Run Code Online (Sandbox Code Playgroud)

保存并关闭。

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'))
Run Code Online (Sandbox Code Playgroud)

这应该会为您提供一个表单,其中您的签名图像放置在模板中创建的位置。