我在使用 ImageMagick 和 Ghostscript 将 PDF 转换为 JPG 时遇到了问题。有时我会遇到可怕的
convert multipage.pdf multipage.jpg
convert: no images defined `multipage.jpg' @ error/convert.c/ConvertImageCommand/3210.
- 它只适用于某些 PDF,似乎仅适用于 PDF1.3,不确定。
- 据我所知,ImageMagick-delegate 对于 Ghostscript 来说是正确的(否则它根本不起作用)。
Ghostscript 似乎有效。我运行并获得了例外的输出
gs -dNOPAUSE -dBATCH -sDEVICE=jpeg -r96 -sOutputFile='page-%00d.jpg' multipage.pdf
从 ImageMagick 调用 Ghostscript 有问题吗?有日志吗?我的 Ubuntu 安装是否缺少字体或其他东西?
已尝试多次重新安装 Ghostscript 和 ImageMagick。
运行 Ubuntu 16.04
任何提示都值得赞赏!
答案1
我不确定您是否找到了解决方案,并且也意识到这是一篇非常古老的帖子,并且可能还有其他人需要对此有所了解,因此我想分享一个可能的解决方案。
假设一下。您似乎正在尝试处理包含多页的文档。不清楚该命令处理的其他 PDF 是否是单页。
但仅基于假设,只是想澄清一下,我猜你的命令的唯一问题是没有指定你打算将 PDF 文档的哪一页转换为图像。正如网络上的许多教程一样,你必须做这样的事情:
convert "multipage.pdf[0]" multipage.jpg
该命令指定将第一页呈现为图像,然后转换为 JPEG 文件。
现在还要注意,新安装的 ImageMagick 禁止处理 PostScript 文件。如果您收到如下错误:
attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408
您需要打开policy.xml
位于/etc/ImageMagick-6
根据安装的版本的文件,并注释以下语句:
<!-- disable ghostscript format types -->
<policy domain="coder" rights="none" pattern="PS" />
<policy domain="coder" rights="none" pattern="PS2" />
<policy domain="coder" rights="none" pattern="PS3" />
<policy domain="coder" rights="none" pattern="EPS" />
<policy domain="coder" rights="none" pattern="PDF" />
<policy domain="coder" rights="none" pattern="XPS" />
但请注意,这是一个非常重要的说明,如果您安装了旧版本的 GhostScript,则不建议这样做,因为旧版本存在严重的安全漏洞。我建议始终保持 GhostScript 和 ImageMagick 为最新版本,并相应地修复您的代码。