12

我正在尝试将 PDF 文件转换为 PNG。它在命令行中运行良好(我确实安装了 GhostScript 8.64)。但是从PHP我遇到了一个问题:

代码:

$im = new Imagick($pdf_file); // this is where it throws the exception below

输出:

Fatal error: Uncaught exception ‘ImagickException’ with message ‘Postscript delegate failed `23_1235606503.pdf’: No such file or directory @ pdf.c/ReadPDFImage/612′ in get_thumbnail.php:93
Stack trace:
\#0 get_thumbnail.php(93): Imagick->__construct(’…’)

等等等等

我不确定我在这里做错了什么,但我怀疑这与我在某处的服务器配置有关。我正在运行:Apache 2.2.11 PHP 5.2.8 ImageMagick 6.4.8-9 GhostScript 8.64

4

3 回答 3

18

终于想通了。GhostScript 可执行文件 ( gs) 不在 Apache 的环境路径中。它在/usr/local/bin. 虽然我尝试了几种方法来添加/usr/local/bin到路径中,但我没有成功。我最终gs/usr/bin directory. 现在一切正常。

于 2009-02-26T17:05:15.253 回答
5

我在 Stackoverflow 上没有“声誉”来添加上面的内联评论,但我必须执行一个额外的步骤才能在我的 Mac 上使用最新的 Sierra 更新。

当你输入命令时:

sudo ln -s /usr/local/bin/gs /usr/bin/gs

在 Mac 上,您可能会收到错误消息“不允许操作”。

显然,Apple 更改了“bin”目录不可编辑,除非您禁用 SIP(​​系统完整性保护)。

因此,以下是执行此操作的步骤:

  1. 通过重新启动计算机并按住“Command + R”直到屏幕上出现 Apple 标志,将 Mac 重新启动到恢复模式。
  2. 单击实用程序 > 终端
  3. 在终端窗口中,输入crutil disable并按“Enter”
  4. 重新启动您的 Mac。

我刚刚完成了这些步骤,现在我的 Ghostscript 运行良好,我成功地将 PDF 转换为 JPG。

于 2016-12-21T22:46:32.323 回答
-4

我成功地做到了这一点。这是我用来进行转换的代码。我们正在商业上使用这个解决方案。我知道这个问题已经存在了一段时间,但它仍然可以帮助你。

//Convert PDF contract to image using ImageMagik and Ghostscript
// NOTE: This will need to be change if running on Linux
$source = $appDir."\\".$clientID."\\".$clientID.".pdf";
$dest = $appDir."\\".$clientID."\\".$clientID.".jpg";
//print("c:\\IM\\convert.exe $source $dest ");
exec("c:\\IM\\convert.exe $source $dest ");
于 2009-03-25T19:04:52.540 回答