未捕获的异常'ImagickException',消息'无法读取文件'

时间:2016-02-09 14:02:46

标签: php image pdf ghostscript imagick

我在使用Imagick阅读文件时遇到问题。我成功安装了imagick和ghostscript扩展。

这就是我正在做的事情:

<?php

    $im = new Imagick();
    $im->setResolution(300, 300);
    $im->readImage('/Applications/MAMP/htdocs/mywebsite/wp-content/plugins/myplugin/uploads/magazine_cover.pdf[0]');
    $im->setImageFormat('jpg');
    header('Content-Type: image/jpeg');
    echo $im;

?>

我收到了错误:

  

致命错误:带有消息的未捕获异常'ImagickException'   on /Applications/MAMP/htdocs/imagick.php上的“无法读取文件”   第10行

当我尝试在终端中执行以下命令时:

convert magazine_cover.pdf magazine_cover.jpeg

我收到了警告:

**** Warning: considering '0000000000 XXXXX n' as a free entry.

**** This file had errors that were repaired or ignored.
**** The file was produced by:
**** >>>> Mac OS X 10.11.3 Quartz PDFContext <<<<
**** Please notify the author of the software that produced this
**** file that it does not conform to Adobe's published PDF
**** specification.

但他创造了jpeg ......为什么这不能在浏览器中运行?

1 个答案:

答案 0 :(得分:0)

警告是由Ghostscript生成的,它说你的PDF文件在技术上并不合法,但它应该处理得很好,除非有更多的问题。

我建议你找出ImageMagick传递给Ghostscript的命令,并在命令行上尝试。如果它工作,那么问题最有可能在IM结束,否则问题是Ghostscript不喜欢你的PDF文件。命令行可能会为您提供更多信息。即使它没有该信息和文件,您也可以打开Ghostscript错误报告,并且可以修复(如果可能的话)。