如何使用imagemagick转换为pdf时管理图像放置?

时间:2013-12-30 20:22:43

标签: imagemagick imagemagick-convert

我从github上扯了一堆png,看起来有点像这样:

enter image description here

所有宽度均为912,但高度各不相同。

我正在尝试将它们全部转换为可读的A4 pdf,使用:

convert -page A4 *.png -format pdf file.pdf

我可以将它们全部放入pdf中,但无法得到结果:

  • 它将它们放在页面底部而不是页面顶部。
  • 此外,大多数都适合一页,但对于那些有很多像素的页面,我想分割并裁剪它,以便它跨越多个页面,同时保持一致的大小

如何将它们放在页面顶部(居中,或左边对齐一点边距),以及分割它们的奖励积分?

2 个答案:

答案 0 :(得分:3)

ImageMagick将图片添加到左下角的PDF中。可以设置偏移量以将其推到页面顶部。以下是您修改的代码以使用示例png:

convert -page A4+0+593 example.png -format pdf file.pdf

但是,垂直偏移(此处为593px)需要与每个png的高度相关。您可以找到文件的高度(使用identify xyz.png)并从842(A4 PDF的高度)中减去它。这将为每个文件提供必要的垂直偏移量。

你的复杂性是你的png是912px宽,A4 pdf只有595px宽,所以你的png按比例减少以适应。您可以使用ImageMagick将图像按比例缩小到595px宽(使用convert example.png -resize 595x595 reducedExample.png)。然后找到缩小的png的新高度,从842减去该值,并使用该数字作为偏移量。

这可以帮助您解决第二个问题。一旦你确定了缩小的png的高度,你就会知道它对于一个页面来说是否太高了。任何高于842px(或更低,如果包含边距)的东西都需要使用-chop运算符进行切割以适合页面(有关详细信息,请参阅ImageMagick Usage manual)。

答案 1 :(得分:1)

而不是计算你可以使用-gravity参数。我建议" -gravity north"将图像粘贴到顶部边缘或" - 重心中心"把它们集中起来。结果取决于图像是否适合页面。如果它们的大小都相同,它应该可以工作。

因此,如果您在所有png:s的文件夹中,我将执行以下操作: convert -gravity north -page A4 * .png -format pdf output.pdf