ImageMagick - 将多页PDF转换为一个图像

时间:2013-06-07 13:16:35

标签: php imagemagick imagemagick-convert

我正在使用ImageMagick将PDF文件转换为图像。然而,一些PDF有多个页面,这被证明是一个真正的问题。

我的本​​地转换是在下面。

exec("\"C:\\Program Files (x86)\\ImageMagick-6.8.5-Q16\\convert.exe\" -density 300 -quality 75 \"{$path}{$filename}{$ext}[$page]\" \"{$targetFile}\"");

如果我从exec中删除[$page]它可以工作,但每页创建一个图像,这不是我想要的。

我一直在寻找一段时间,但我已经没有希望和想法了。有什么方法可以将所有新图像合成一张最终图像,或者将PDF直接转换成一张图像?任何帮助都会非常感激,欢呼。

1 个答案:

答案 0 :(得分:2)

查看-append和+ append选项。

-append垂直附加图片,+append水平附加图片。

用法(http://linuxers.org/quick-tips/convert-pdf-file-single-image-using-imagemagick):

根据该链接,多页pdf convert的输出将是$ {targetFile} -0.png,$ {targetFile} -1.png,$ {targetFile} -n.png,将pdf转换为多个图像后,请使用-append或+ append选项:

convert ${targetFile}-* -append single_image.png

要把它们放在一起,尝试这样的事情(你可能需要稍微玩一下;我还没有使用过Windows的shell中的Imagemagick):

// convert pages of pdf

exec("\"C:\\Program Files (x86)\\ImageMagick-6.8.5-Q16\\convert.exe\" -density 300 -quality 75 \"{$path}{$filename}{$ext}\" \"{$targetFile}\"");

// then append them

exec("\"C:\\Program Files (x86)\\ImageMagick-6.8.5-Q16\\convert.exe\" \"{$targetFile}-*\" -append "${someName}\"");

更多资源:

http://www.imagemagick.org/script/command-line-options.php#append

http://www.imagemagick.org/Usage/layers/