当在WAMP中读取PDF时,想象一下NoDecodeDelegateForThisImageFormat`PDF'@ error / constitute.c / ReadImage / 509

我已使用此处定义的步骤在WAMP中安装了Imagick 3.4.4:https://newsinfo-blog.blogspot.com/2015/03/install-imagick-on-wamp-server.html

然后我使用以下代码将PDF转换为JPEG图像:

    $im = new Imagick();

    $im->setResolution(300,300);
    $im->readImage($_SERVER['DOCUMENT_ROOT'] . '/codeigniter/assets/lofthouse.pdf[0]');
    $im->setImageFormat('jpeg');
    $im->writeImage('thumblofthouse.jpg');
    $im->clear();
    $im->destroy();

但是我收到以下错误消息:

发生未知错误类型:ImagickException

消息:NoDecodeDelegateForThisImageFormat`PDF'@ 错误/constitute.c/ReadImage/509

我在做什么错?如何将PDF的首页另存为图像?

我注意到当我尝试时:

print_r(Imagick::queryFormats());

结果是一个空数组。

编辑:

这些是我到目前为止已采取的步骤:

  1. 下载了ImageMagick https://imagemagick.org/script/download.php#windows并通过安装程序安装了它,并将其放在我的D:\ software文件夹中。
  2. 已下载并安装了Ghostscript:https://www.ghostscript.com/download/gsdnld.html,将其放置在D:\文件夹中,并勾选了该复选框以生成字体。
  3. 将php_imagick.dll文件复制到我的/ ext /文件夹中
  4. 将所有CORE_RL_ *文件复制到apache / bin /文件夹
  5. 在我的PATH变量中将根路径添加到ImageMagick的安装目录(并放在PHP行上方)

EDIT2: 我也已经完成了以下步骤,尽管我不确定是否需要这些步骤

  • 创建了一个名为MAGICK_HOME的新系统变量,并使其指向imagemagick根目录。
  • 通过在policymap属性中添加<policy domain="module" pattern="{PS,PDF,XPS}" rights="read|write"/>来修改ImageMagick中的policy.xml。

这是phpinfo()返回的内容:

imagick module  enabled
imagick module version  3.4.4
imagick classes Imagick,ImagickDraw,ImagickPixel,ImagickPixelIterator,ImagickKernel
Imagick compiled with ImageMagick version   ImageMagick 7.0.7-11 Q16 x86 2017-11-23 http://www.imagemagick.org
Imagick using ImageMagick library version   ImageMagick 7.0.7-11 Q16 x86 2017-11-23 http://www.imagemagick.org
ImageMagick copyright   Copyright (C) 1999-2015 ImageMagick Studio LLC
ImageMagick release date    2017-11-23
ImageMagick number of supported formats:    0

EDIT3:我可以使用ImageMagick通过命令行将PDF转换为JPG。完成上述所有步骤后,我现在收到以下错误:

Type: ImagickException

Message: no decode delegate for this image format `PDF' @ error/constitute.c/ReadImage/509
zxj3125 回答:当在WAMP中读取PDF时,想象一下NoDecodeDelegateForThisImageFormat`PDF'@ error / constitute.c / ReadImage / 509

我也有同样的问题。解决了。​​

检查您的文件扩展名,确保有“.pdf”

注意:在我的情况下,如果 pdf 版本为 1.4 或更低,则扩展名不好或为空不是问题,转换将起作用,但对于新的 pdf 版本,我得到了异常“未委托...”。

本文链接:https://www.f2er.com/2618305.html

大家都在问