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

Poo*_*onk 5 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}\"");
Run Code Online (Sandbox Code Playgroud)

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

我一直在寻找一段时间,但我已经没有希望和想法了。有什么办法可以将所有新图像都转换为一张最终图像,或者将 PDF 直接转换为一张图像?任何帮助将不胜感激,干杯。

Tay*_*ler 5

查看 -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/