php - Imagick 和 phmagick : Postscript delegate failed/No such file or directory 问题

标签 php pdf imagemagick ghostscript imagick

我正在使用 imagick 3.0.1 和 phmagick (http://www.francodacosta.com/phMagick/download)。无论如何,当我尝试将 PDF 转换为 JPEG 时,两者都会给我同样的错误。

例如: Postscript 委托(delegate)失败`/tmp/magick-bfxIrUJ5':没有这样的文件或目录@error/pdf.c/ReadPDFImage/669

我正在使用 Ghostcript-9.05(在/usr/local/bin/gs 上运行)。 还有 ImageMagick-6.7.6-8(在/usr/local/bin/convert 上运行)。

我已经检查了文件夹的权限 (755)。 ImageMagick 在终端上运行得非常好。

例如,我的 PHP 使用 Imagick:

//use imagick
$im = new imagick( '/pdf/553571072.pdf' );

// convert to jpg
$im->setImageColorspace(255);
$im->setCompression(Imagick::COMPRESSION_JPEG);
$im->setImageFormat('jpeg');

//write image on server
$im->writeImage('/jpg/553571072.jpg');

顺便说一句,Imagick 它出现在我的 phpinfo() 中。我在 linux/apache/amd64 上工作。

任何建议将不胜感激!

最佳答案

好的,感谢 Nuno Franco da Costa ( http://www.francodacosta.com/ ) 的帮助,这终于成功了。

问题是我的 GhostScript 路径对于 Shell 是正确的,但对于 System 和 PHP 是错误的。要更正您应该将 /usr/local/bin/gs 文件链接到 /usr/bin/gs

从 Shell 执行以下操作:

[root@din ~]# convert -list configure | grep -i delegates
DELEGATES     bzlib fontconfig freetype jpeg jng png tiff x11 xml zlib

检查 /usr/bin 中是否已经存在 gs 文件。如果是,我们将创建它的备份。
如果没有/usr/bin/gs可以跳过这一步

[root@din ~]# ls -l /usr/bin/gs
-rwxr-xr-x 1 root root 6024 Sep 30  2010 /usr/bin/gs
[root@din ~]# mv /usr/bin/gs /usr/bin/gs.orig

现在创建从 /usr/local/bin/gs/usr/bin/gs

的链接
[root@din ~]# sudo ln -s /usr/local/bin/gs /usr/bin

这应该可以解决问题。非常感谢大家。

关于php - Imagick 和 phmagick : Postscript delegate failed/No such file or directory 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10455985/

相关文章:

imagemagick - 用 Imagemagick 裁剪的图像会以某种方式记住它们的旧尺寸吗?如果是这样,如何避免呢?

image - 匹配不同格式的两个图像

javascript - 将sql查询参数发送给函数

php - 只是想知道为什么这不起作用,我想将数据从提交表单插入到数据库

python - PDF 表单字段操作

xcode - 如何在 Xcode 6.4 中使用矢量图

javascript - 对 php 的 Ajax 请求在本地主机上工作,但不在实时服务器上工作

php - 来自 Mysql 表中行的超链接

pdf - grails g:在gsp页面中设置为空值

linux - ImageMagick - 裁剪、调整大小和连接两张图片