转换:Postscript 委托失败

Posted

技术标签:

【中文标题】转换:Postscript 委托失败【英文标题】:Convert: Postscript delegate failed 【发布时间】:2012-04-04 17:00:09 【问题描述】:

我正在尝试将 PDF 转换为 JPEG:

$ convert pdf-test.pdf pdf-test.pdf.jpg

但是,我收到此错误:

convert: Postscript delegate failed `pdf-test.pdf': No such file or directory @ error/pdf.c/ReadPDFImage/664.
convert: missing an image filename `pdf-test.pdf.jpg' @ error/convert.c/ConvertImageCommand/3015.

目前我在 Mac OS X Lion 上使用这个版本的 GS 和 ImageMagick:

$ gs -v
GPL Ghostscript 9.02 (2011-03-30)
Copyright (C) 2010 Artifex Software, Inc.  All rights reserved.

$ convert -version
Version: ImageMagick 6.7.1-1 2011-07-21 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMP

有人可以告诉我吗?

【问题讨论】:

当您的“pdf”文件为空时也会发生这种情况。 【参考方案1】:

我收到了同样的错误信息。然后我安装了 gs 并且之后相同的命令正常工作。

【讨论】:

这在更新 OSX 后对我有用。 brew 似乎已经过时了,gs 不再存在于正确的地方。 是的,一般来说这可能是正确的答案。 +1,是的,它是正确的。更多信息imagemagick.org/script/formats.php在这里 请注意,如果您在 mac 上并使用 brew,您还需要添加一个指向 /usr/bin/gs 的链接,以使其在任何地方都能正常工作! ***.com/questions/10455985/…【参考方案2】:

尝试安装 GS:

$ brew install gs

【讨论】:

Debian : aptitude install ghostscript【参考方案3】:

好吧,它告诉你没有这样的文件或目录。大概您已经检查过该文件是否存在。您是否尝试过使用 ./pdf-test.pdf 或使用完全限定的路径?

您是否尝试过直接使用 GS 而不是使用 ImageMagick 打开文件?只是为了检查 GS 是否正常工作。有点像:

gs ./test-pdf.pdf

应该在窗口中打开 PDF 文件。

【讨论】:

您好,肯,感谢您的帮助。我已按照您的步骤操作,并附上了屏幕截图。 dl.dropbox.com/u/5059542/… 执行转换 pdf-test.pdf 后,我可以看到生成了一个没有扩展名 magick-1FxqMZQQ-00000001 的文件,如屏幕截图所示。它实际上是JPG文件。这实际上告诉我什么?谢谢大佬。 好的,这意味着 GS 可以正常工作,并且能够毫无问题地打开文件。您看到正在生成 JPEG 文件的事实表明 GS 也在运行转换步骤,并制作 JPEG 文件。但是,它显然没有正确的名称。我不能告诉你的是为什么会这样。 convert 可能应该重命名或复制文件,或者它给 Ghostscript 提供了错误的输出文件名。恐怕您需要可以帮助您调试“转换”而不是 Ghostscript 的人:-( 嗨,Ken 再次感谢您的帮助。我决定直接使用 GS,而不是依靠 ImageMagick convert 来运行 gs 背景......它的工作原理几乎相同,如果不是更快的话:)【参考方案4】:

当您选择太大的分辨率时,ImageMagick 有时会引发此错误。使用-density 参数来限制它,例如-density 200.

【讨论】:

【参考方案5】:

我今天遇到了这个问题,它似乎与 /tmp 卷溢出有关。具体来说,是magick-* 文件溢出了存储空间。

释放 /tmp 文件为我解决了这个问题。

【讨论】:

【参考方案6】:

在尝试将使用 PHP 和 Imagick 的 PDF 文件转换为其他格式时,我在 Mac OS X 10.6.8 上遇到了与 MAMP 3.05 相同的问题。转换不起作用并给出类似“Postscript delegate failed...No such file...”之类的错误。

/Applications/MAMP/Library/bin/lib 中已经有一个“gs”文件,它是在安装 MAMP 3.05 软件包时出现的。但不幸的是,这个文件似乎不在它的好位置,这可以解释为什么 Ghostscript 不起作用。

“gs”文件的正确位置是 /usr/bin。我尝试将“gs”文件的别名从 MAMP 文件夹放入 /usr/bin,但没有成功。

最好的方法是重新安装 GS。从http://pages.uoregon.edu/koch/ 下载安装包。最后一次更新是 9.14,但在他们的网站上,他们告诉它在某些情况下是错误的。出于这个原因,我更喜欢安装 Ghostscript 9.10。

下载后,启动 Ghostscript 包。这很容易! GS 将自身安装在 /usr/local/bin 中。将“gs”别名从 /usr/local/bin 复制到 /usr/bin。显然,要做到这一点,您必须使用 Onyx 之类的工具在查找器中显示隐藏文件,在 http://www.titanium.free.fr/downloadonyx.php 处选择您的 MAC OS X 版本@

重新启动 MAMP 和/或您的计算机。现在GS可以正常工作了,PDF文件可以转换成其他图片格式了。

希望对您有所帮助。

【讨论】:

【参考方案7】:

我从 PHP/Imagick/GS 收到了一个非常相似的错误消息,结果证明有问题的 pdf 是受密码保护/加密的。所以也许这是另一个可能的原因。

【讨论】:

以上是关于转换:Postscript 委托失败的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Python tkinter canvas postscript 文件转换为 PIL 可读的图像文件?

GCC 4.8.5 manuals

postscript 到 pdf 的转换不保留字体

将带有 PostScript 轮廓的 OpenTypeFonts 转换为 TrueType 字体

为啥从 gnuplot postscript 输出转换的 .png 具有透明背景?

将大型光栅图形图像(位图、PNG、JPEG 等)转换为非矢量 postscript