Imagemagick:在读取时将PDF格式化为设定的分辨率

时间:2014-02-20 16:20:24

标签: pdf imagemagick

我想生成固定宽度(548像素宽,高度由PDF页面宽高比决定)的PDF缩略图。使用ImageMagick,我可以使用以下命令执行此操作:

$ convert -density 300 -resize 548x input.pdf thumbnail.png

这适用于任意大小的PDF,但PDF越大,所需的时间越长。从文档中我了解到这是因为ImageMagick首先必须读取PDF并对其进行光栅化(以300 DPI为单位),然后再缩小它。这显然需要更长的内存,而PDF越大。

我的问题是:在缩小PDF并输出PDF之前,我们能否告诉ImageMagick将PDF格式化为设定的分辨率(比缩略图需要的大2或3倍)?这应该允许我们的转换在大致相同的时间内运行,而不管PDF大小。

我们可以通过首先阅读PDF分辨率,然后计算适当的DPI以生成合适大小的光栅化PDF来手动完成,但这看起来有点像黑客,我希望ImageMagick内置这样的内容

1 个答案:

答案 0 :(得分:9)

当前版本的ImageMagick(6.8.8-7)无法实现。我们在此处找到了您的帖子并添加了以下功能,该功能将在ImageMagick(6.8.8-8)中提供:

您可以使用以下命令将PDF缩放为548像素的宽度:

$ convert -define psd:fit-page=548x input.pdf thumbnail.png

如果使用其他DPI创建的图像超过默认值(72 DPI),则必须在之后调整其大小:

$ convert -density 300 -define psd:fit-page=548x input.pdf -resize 548x thumbnail.png