imagickException:Postscript委托失败想象IIS

时间:2014-01-07 03:43:26

标签: php pdf imagemagick ghostscript imagick

我正在使用这些行将pdf转换为jpg:

$img = new imagick($url.'[0]');
$im->setImageColorspace(255);
$im->setCompressionQuality(95);
$im->setImageFormat('jpeg');

我使用软ImageMagick 6.7.7-10 2012-06-27 Q16(x86)安装了imagick 3.1.0RC2。我也有一个x86 PHP 5.4.22非线程,我在Windows服务器2012上使用IIS 8.php_imagick.dll是5.14 nts所以它应该工作。 ghostscript版本是gs9.10,我安装了32位和64位。它与msdos命令行完美配合,但与PHP无关。

然后在创建对象时出现此错误。

  

ImagickException:Postscript委托失败   `D:\ inetpub \ website \ sites \ default \ files \ image_2.pdf':没有这样的文件或   目录@ error / pdf.c / ReadPDFImage / 677 in Imagick-> __ construct()

是环境变量问题吗? 我有一个imagick文件夹和ghostscript的bin文件夹作为windows环境变量。

有什么想法吗?

干杯

2 个答案:

答案 0 :(得分:2)

我终于找到了答案! 问题是windows的临时文件夹(c:\ windows \ temp)(php.ini中的upload_tmp_dir)必须为用户IUSR或IIS_IUSRS读取和写入(取决于您的IIS版本) 谢谢你们的帮助

答案 1 :(得分:1)

这似乎表明imagick无法找到ghostscript可执行文件。

确保GS可执行文件位于相关路径中:

<?php
phpinfo(INFO_ENVIRONMENT);
?>

...搜索PATH页面。

如果不存在,请将其添加到需要的任何脚本中:

<?php
putenv(getenv('PATH').':path/to/ghostscript/executable')
?>