如何将图片添加到现有的 pdf 文件中?

Tim*_*Tim 9 pdf editing ubuntu

我的操作系统是 Ubuntu。所以我更喜欢 Linux/Debian 软件,但任何可以在 Wine 或 mono 下运行的 Windows 软件也可以。

我有一个扫描的 pdf 文件,它是一份申请表,一张图片是一个人签名的扫描版本(例如,这个),可以是任何图像格式,如 eps 或 png。我想把签名图片放在申请表第二页“申请人:”右边的空白处。我想知道如何做到这一点?

我尝试了以下方法,但都没有成功。

  1. 第一种方法是使用 gimp。我先把申请表导入gimp,然后把右边空白处的签名图片粘贴到申请表第二页的“APPLICANT:”。

    但问题在于:

    • 好像我只能将申请表的一页导入gimp,不能全部导入两页。

    • 另外我保存修改的时候,能保存的最接近pdf的格式是ps,而且分辨率已经降级了,保存的文件的存储空间比原来的申请表和签名图片大10倍。

  2. 第二种方法是使用 Libreoffice Draw。我已经安装了 libreoffice-pdfimport 包。但是在我将申请表导入 Libreoffice Draw 之后,

    • 不会导入所有扫描的内容,并且

    • 布局与原始申请表的布局不同。

那么我还可以尝试哪些其他方法?我更喜欢一些可以将签名图片直接放在申请表pdf文件上的方式,

  • 无需在格式之间转换,
  • 无需创建更大的文件,同时保持原始分辨率,
  • 无需拆分和合并多页 pdf 文件的页面,
  • 无需光栅化pdf文件的其他部分,即不会丢失我后来通过将整个pdf转换为图像而添加到申请表pdf文件中的文本。

谢谢!

Kur*_*fle 7

我会这样做:

  1. 创建一个空白页 PDF,上面只有左下角的签名。如果你想花哨,把签名做成蓝色或红色或绿色......重要提示:页面应该使用透明背景,而不是白色!将其保留为“master-sig.pdf”。

  2. 使用 Ghostscript 将“master-sig.pdf”转换为新的“working-sig.pdf”页面,并将签名转移到您需要的位置:

    gs -o working-sig.pdf \
       -sDEVICE=pdfwrite \
       -c "<< /PageOffset [216 504] >> setpagedevice" \
        主签名.pdf
    
    这会将签名向左移动 3 英寸,向上移动 7 英寸(PostScript 中的 72 点 == 标尺上的 1 英寸)。您必须进行一些实验,或者在打印输出的纸张(加上一些代数)上应用硬件标尺来确定正确的数字。

  3. 用于pdftk将“working-sig.pdf”叠加到“contract.pdf”上,结果为“signed-contract.pdf”

    pdftk \
        合同.pdf \
        邮票工作-sig.pdf \
        输出签署的合同.pdf
    

  • 在当前版本的 Ghostscript (9.50) 中,我必须调整命令行语法才能使第一个命令正常工作(您的情况可能会有所不同),我必须在输入参数之前添加 `-f`:`gs -sDEVICE =pdfwrite -oworking-sig.pdf -c "&lt;&lt; /PageOffset [216 504] &gt;&gt; setpagedevice" -f master-sig.pdf`。 (2认同)

小智 6

这让我很恼火,所以我制作了一个名为的小包pdfstamp以使其更容易。

https://github.com/benwinding/pdfstamp

安装

npm i -g pdfstamp

确保您有依赖项 (ImageMagickpdftk)

pdfstamp doctor

用法

pdfstamp stamp \                                                                                                      
--input ./input.pdf \                                                                                  
--signature ./signature.png \                                                      
--output ./output.pdf \                                
--page 2 \                       
--bottom 300 \
--left 200
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Eve*_*ett 5

如果您使用的是 Ubuntu:

sudo apt-get install pdfedit
Run Code Online (Sandbox Code Playgroud)

要启动 PDFEdit,请键入:

$ pdfedit /path/to/pdf.file &
$ pdfedit &
Run Code Online (Sandbox Code Playgroud)

这将使您可以使用 PDF 编辑器来解决您的问题。

软件是一个所见即所得的可视化编辑器,它也支持脚本编写,几乎任何东西都可以编写脚本。PDFedit 是一个供用户使用的低级工具。你可以使用这个软件:

编写/创建/编辑PDF文件。

打印 PDF 文件。

保存 PDF 文件。

将 PDF 文件导出为 XML 等。


小智 5

LibreOffice 提供的答案不会保留文本的外观。

\n

使用 LibreOffice Writer,但这样:

\n
    \n
  1. 创建一个新的 LibreOffice Writer 文档;
  2. \n
  3. 通过 Format \xe2\x86\x92 Page 去除边距;
  4. \n
  5. 通过Insert \xe2\x86\x92 Image导入每个PDF页面;
  6. \n
  7. 您可以将任何图像放置在插入的(原始)图像上。
  8. \n
\n


小智 -1

使用pdflatex/xelatex/lualatex。这些程序可以读取图像和 pdf 并创建新的 pdf。

  • 非常懒惰的答案,如果可以的话我会投反对票。 (2认同)