【发布时间】:2019-12-26 01:38:20
【问题描述】:
我正在使用 Imagick 从包含多页的预生成 PDF 文件生成 JPG 图像,例如文件包含总共 6 页作为 PDF 文件。运行以下代码后为:
$imagick = new \Imagick();
$imagick->setResolution(500, 500);
$imagick->readImage($pdfFinalFile);
$imagick->writeImages($jpgPath.'/Image.jpg',false);
输出来自 0 到 4 个编号序列的总共 5 张 JPG 图像。
无法确定为什么writeImages 函数正在跳过 PDF 的最后一页,我通过检查最后一页被跳过的图像上的详细信息确定了这一点
- 版本:ImageMagick-6
- PHP 版本:7.1
- 操作系统:Ubuntu 18
期望 PDF 的所有页面都应转换为图像
【问题讨论】:
-
发布一个指向您的 PDF 文件的链接,我将使用命令行检查它以导出为 JPG 以查看是否只有 5 页。 ImageMagick 6.x.x.x 的确切版本是什么?
-
files.fm/… 不在开发机器上现在会更新你的确切版本
-
版本:ImageMagick 6.9.7-4 Q16 x86_64 20170114 @fmw42
-
在 IM 6.9.10.61 Q16 Mac OSX 上转换时,我得到 6 页(0 到 5)。我怀疑这可能是您安装中的 Ghostscript 版本的问题。我正在使用 GS 9.2.5。您可能使用的是非常旧的版本,因为您的 ImageMagick 版本很古老(根据日期是 2.5 年)。您可能会检查 Linux 系统上的更新补丁。或者干脆升级 Ghostscript。在终端窗口中输入
gs --version,它会告诉你你的版本 -
将 GS 脚本和 ImageMagick 更新到最新版本,它的工作原理非常棒,感谢@fmw42 的帮助