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 直接转换为一张图像?任何帮助将不胜感激,干杯。
查看 -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/