使用ImageMagick修改PDF时,摆脱质量问题

时间:2016-09-22 13:29:55

标签: pdf imagemagick

我们的目标是让用户上传PDF并在左上角放置一个“图章”(带有背景颜色+文字的框)。 “邮票”部分效果很好,但是一旦我们通过ImageMagick传递PDF,我们立即就会遇到质量问题 - 特别是当原始PDF已经有某些文物时。

这是我的源PDF截图(由于隐私原因而添加了黑色区域)。 https://dl.dropboxusercontent.com/u/6271307/Screen%20Shot%202016-09-22%20at%2015.18.49.png 您可以看到质量不是很好,因为它是由复印机扫描的。

在ImageMagick处理后,结果如下所示: https://dl.dropboxusercontent.com/u/6271307/Screen%20Shot%202016-09-22%20at%2015.19.15.png

这是正在进行的通话:

'/usr/bin/convert' +profile '*' -compress jpeg -quality 90 -density 180 -pointsize 10 -fill 'rgba(220, 220, 220, 0.75)' -stroke 'rgba(220, 220, 220, 0.75)' -draw 'rectangle 40,20,491,100' -stroke '#000000' -font Courier -draw "text 48,47 'Vermittlernummer Gesellschaft'" -draw "text 48,81 '70_202_3297'" mysource.pdf mytarget.pdf
  • 如果我省略“-compress jpeg -quality 90”参数,结果看起来是一样的,它只是文件大小稍大。
  • 如果我省略“-density 180”参数,结果看起来好多了

ImageMagick的哪些选项可以帮助我获得更好的结果?

1 个答案:

答案 0 :(得分:0)

首先尝试将您的pdf转换为png。我说这是因为我下载了你的.png图片:

https://dl.dropboxusercontent.com/u/6271307/Screen%20Shot%202016-09-22%20at%2015.18.49.png

并运行您的代码:

  convert -density 180  +profile '*' -compress jpeg -quality 90 -pointsize 10 -fill 'rgba(220, 220, 220, 0.75)' -stroke 'rgba(220, 220, 220, 0.75)' -draw 'rectangle 40,20,491,100' -stroke '#000000' -font Courier -draw "text 48,47 'Vermittlernummer Gesellschaft'" -draw "text 48,81 '70_202_3297'" test.png mytarget.png

得到了这个结果:

enter image description here

这对我来说很好看。我使用你的代码输出了一个.png,但pdf看起来一样好 - StackOverflow似乎不允许pdf上传。

如果不起作用,请告诉我!

干杯。