【问题标题】:PDF Pages to Images Using Imagick Skips Last PDF Page使用 Imagick 将 PDF 页面转换为图像跳过最后一个 PDF 页面
【发布时间】: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 的帮助

标签: php image pdf imagick


【解决方案1】:

试试这个我不靠近电脑的代码



$im = new Imagick();

$im->setResolution(3000,3000);
$im->readimage('file.pdf'); 
$im->setImageFormat('jpeg');    
$im->writeImage('outb.jpg'); 
$im->clear(); 
$im->destroy();

【讨论】:

  • 这只会为我提供一张图片
猜你喜欢
  • 2015-08-12
  • 1970-01-01
  • 2015-09-18
  • 2014-01-03
  • 1970-01-01
  • 1970-01-01
  • 2012-04-24
  • 2012-12-30
  • 1970-01-01
相关资源
最近更新 更多