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

使用imagemagick转换为pdf时如何管理图像放置?,imagemagick,imagemagick-convert,Imagemagick,Imagemagick Convert,我从github上撕下了一堆png,看起来有点像这样: 它们的宽度都是912,但高度各不相同 我正在尝试使用以下方法将它们全部转换为可读性良好的A4 pdf格式: convert -page A4 *.png -format pdf file.pdf 我可以将它们全部输入pdf,但无法获得正确的结果: 它将它们放在页面的底部而不是顶部 而且,它们中的大多数可以放在一个页面上,但是对于那些有很多像素下降的页面,我想对其进行分割和裁剪,这样它可以跨越多个页面,同时保持一致的大小 如何将它们放

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

它们的宽度都是912,但高度各不相同

我正在尝试使用以下方法将它们全部转换为可读性良好的A4 pdf格式:

convert -page A4 *.png -format pdf file.pdf
我可以将它们全部输入pdf,但无法获得正确的结果:

  • 它将它们放在页面的底部而不是顶部
  • 而且,它们中的大多数可以放在一个页面上,但是对于那些有很多像素下降的页面,我想对其进行分割和裁剪,这样它可以跨越多个页面,同时保持一致的大小

如何将它们放在页面顶部(居中,或左对齐并留一点边距),以及拆分它们的额外点数?

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(或小于842px,如果包含页边距)的内容都需要使用
-chop
操作符进行剪切以适合页面(有关详细信息,请参阅)

可以使用-gravity参数代替计算。我建议使用“-gravity north”将图像粘贴到上边缘,或使用“-gravity center”将图像居中。根据图像是否适合页面,结果会有所不同。如果它们的大小都差不多,那就应该可以了

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

Hmm,我想避免缩小图像,希望保持图像可读性-您可以改为设置pdf的DPI吗?是的,您可以使用
-density
选项重置DPI。看见