转换:Postscript代理失败

36

我正在尝试将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

有人能为我解惑吗?


2
当你的“pdf”文件为空时,也会发生这种情况。 - Vlad Patryshev
7个回答

44

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


在更新了OSX之后,以下方法对我有用。看起来brew已经过时了,gs也不再存在于正确的位置上了。 - nunb
+1,没错。更多信息请访问http://www.imagemagick.org/script/formats.php。 - Selvamani
请注意,如果您使用的是Mac并且使用brew,则还需要添加到/usr/bin/gs的链接才能在任何地方正确运行!https://dev59.com/CmPVa4cB1Zd3GeqP6Hsa - Blitz

13

尝试安装GS:

$ brew install gs


5
Debian:aptitude install ghostscript - Fedir RYKHTIK

8

嗯,它告诉你没有这样的文件或目录。假设您已经检查了文件是否存在。您尝试过使用./pdf-test.pdf,或者使用完全限定路径吗?

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

gs ./test-pdf.pdf

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


嗨,肯,感谢您的帮助。我已经按照您的步骤操作,并附上了一张截图。http://dl.dropbox.com/u/5059542/Screen%20Shot%202012-03-21%20at%2012.13.15%20PM.png 执行 convert pdf-test.pdf 后,我可以看到一个没有扩展名 magick-1FxqMZQQ-00000001 的文件被生成,如截图所示。实际上它是JPG文件。 这实际上告诉我什么?谢谢。 - Charlie Kee
好的,这意味着GS可以正常工作,并且能够无问题地打开文件。您看到生成了一个JPEG文件表明GS也在运行转换步骤,并生成了一个JPEG文件。但是很明显它没有正确的名称。我无法告诉您为什么会发生这种情况。可能是convert应该重命名或复制文件,或者它给Ghostscript提供了错误的输出文件名。恐怕您需要找一个能帮助您调试“convert”而不是Ghostscript的人 :-( - KenS
嗨,肯,再次感谢你的帮助。我已经决定直接使用GS,而不是依赖于ImageMagick转换来运行gs背景...实际上它的工作方式基本相同,甚至更快:) - Charlie Kee

3

当您选择分辨率过大时,ImageMagick有时会抛出此错误。使用-density参数来限制它,例如-density 200


3

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

清空/tmp文件解决了我的问题。


2

我在使用MAMP 3.05在Mac OS X 10.6.8上将PDF文件转换为其他格式时遇到了问题。转换失败并出现错误,如“Postscript代理失败...没有这样的文件...”。

/Applications/MAMP/Library/bin/lib中已经有一个“gs”文件在安装MAMP 3.05包时附带。但不幸的是,该文件似乎不在其正确位置,这可能解释了为什么Ghostscript无法正常工作。

"gs"文件的正确位置是/usr/bin。我尝试将来自MAMP文件夹的“gs”文件的别名放置在/usr/bin中,但它没有起作用。

可靠的方法是安装新的GS。从http://pages.uoregon.edu/koch/下载安装程序包。最新更新版本为9.14,但他们的网站告诉有些情况下会有bug。出于这个原因,我更喜欢安装Ghostscript 9.10。

下载后,启动Ghostscript包。非常简单!GS会自行安装在/usr/local/bin中。将“gs”别名从/usr/local/bin复制到/usr/bin。显然,要执行此操作,您必须使用类似Onyx的工具在finder中显示隐藏文件,选择您的MAC OS X版本:http://www.titanium.free.fr/downloadonyx.php

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

希望能对您有所帮助。


0

我从PHP/Imagick/GS得到了一个非常相似的错误消息,结果发现所涉及的PDF文件是受密码保护/加密的。因此,这可能是另一个可能的原因。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接