【问题标题】:stamp a pdf with an image用图像标记 pdf
【发布时间】:2017-11-12 08:38:48
【问题描述】:

我目前正在编写一个应用程序,其中一个过程是用用户提供的图像标记现有的 1 页 pdf 文档。印章需要缩放并正确定位到 pdf 上。

我已成功遵循Kurt Pfeifle's answer to Stamp PDF file with control for position of stamp file 中的说明。

在答案中,库尔特

  1. 使用 ghostscript 即时创建图章。
  2. 创建一个空的 A4 大小的 pdf,印章位置在里面。
  3. 然后,他使用pdftk 将新创建的 pdf 与原始 pdf 合并

正如我所说,这一切都很好。但是,如果我对自己的图像文件(转换为 pdf)执行相同的过程,则第二步中的大小会出现问题。命令中的大小似乎被忽略了,相反,pdf 的大小与图像相同。下面的 Se 输出用于比较原始命令与原始标记为 pdf 和我使用转换后的图像修改的命令。

原来的工作命令:

gs \
  -o A4-stamp.pdf \
  -sDEVICE=pdfwrite \
  -g5950x8420 \
  -c "<</PageOffset [280 790]>> setpagedevice" \
  -f stamp-small.pdf

带图片的修改命令

 gs \
  -o A4-image.pdf \
  -sDEVICE=pdfwrite \
  -g5950x8420 \
  -c "<</PageOffset [280 790]>> setpagedevice" \
  -f image.pdf

可以看出,大小和比例都是错误的,应该和原来的一致。

原始stamp-small.pdf(来自原始答案)可以这样生成:

gs \
  -o stamp-small.pdf \
  -sDEVICE=pdfwrite \
  -g3200x500 \
  -c "/Helvetica-Bold findfont 36 scalefont setfont" \
  -c "0 .8 0 0 setcmykcolor" \
  -c "12 12 moveto" \
  -c "(This is my stamp) show" \
  -c "showpage"

我在命令中使用的图像如下,但是在将图像转换为 pdf 后,我尝试过的任何图像都会发生同样的情况:

convert image.png image.pdf

【问题讨论】:

  • 无法访问Dropbox上的图片。
  • @mkl 感谢您的澄清。我已经编辑了这个问题。它似乎对任何图像都给出相同的结果。
  • 如果我正确阅读了 Kurt 提供的示例:标志 -f 之后的文件用作“输入”。但是,您的问题是画布大小/比例关闭。您的输入文件的尺寸是多少?您是否事先将其缩放到适当的尺寸?
  • @Uvar 我尝试了多个不同大小的图像文件,甚至是 10x10 像素的小图标,结果都一样。 mihaimm 似乎是正确的,这与透明度有关。

标签: pdf ghostscript


【解决方案1】:

似乎有一些问题与:

  • png 图像的透明度(PDF 不支持透明度)
  • 将输出从 jpg 转换为 pdf(转换中的某种错误?)

简而言之,不深入问题的细节,你可以使用

  • convert image.png -size 640x562 xc:white +swap -compose over -composite image.jpg - 这会将 png 透明度删除为白色(作为背景)并将图像转换为 jpg(注意 -size,这与您在这篇文章中添加的图像相同,但应该说明是您的邮票的正确图像)
  • img2pdf image.jpg -o image.pdf - 正确地将 jpg 图像添加到 pdf 中
  • gs -o A4-image.pdf -sDEVICE=pdfwrite -g5950x8420 -c "&lt;&lt;/PageOffset [100 500]&gt;&gt; setpagedevice" -f image.pdf

【讨论】:

  • 你指的是img2pdf,但是是哪一个?我发现了很多结果。会不会是这样的:gitlab.mister-muffin.de/josch/img2pdf
  • 我试过这条路线,它确实添加了我想要的图像。但是,如果没有透明度,结果就不会太好。无论如何,我离解决方案更近了。
  • 尽管不支持透明度,但听起来它应该是公认的答案。
  • @zanlok 是的,我同意。我会再坚持一下,看看是否有其他人对此有答案,或者 mihaimm 是否想详细说明。
猜你喜欢
  • 1970-01-01
  • 2016-01-28
  • 1970-01-01
  • 2019-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-16
  • 1970-01-01
相关资源
最近更新 更多