Imagemagick 将 PDF 转换为 JPEG:FailedToExecuteCommand `"gswin32c.exe" / PDFDelegateFailed

Imagemagick Convert PDF to JPEG: FailedToExecuteCommand `"gswin32c.exe" / PDFDelegateFailed

我有需要转换为图像的 PDF。我已经安装了 Imagemagick。我有一个名为 a.pdf 的 PDF,我可以在文件夹 C:\Convert\

中打开(它没有损坏)

我正在尝试从命令行

C:\Convert>convert a.pdf a.jpg

我遇到了错误。

convert.exe: FailedToExecuteCommand `"gswin32c.exe" -q -dQUIET -dSAFER -dBATCH -
dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEV
ICE=pamcmyk32" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r72x72" -dUseCIEColor
"-sOutputFile=C:/Users/MNALDO~1.COR/AppData/Local/Temp/magick-3704HYGOqqIK5rhI%d
" "-fC:/Users//MNALDO~1.COR/AppData/Local/Temp/magick-3704vK6aHo7Ju9WO" "-fC:/Use
rs//MNALDO~1.COR/AppData/Local/Temp/magick-3704GQSF9kK8WAw6"' (The system cannot
find the file specified.
) @ error/delegate.c/ExternalDelegateCommand/480.
convert.exe: PDFDelegateFailed `The system cannot find the file specified.
' @ error/pdf.c/ReadPDFImage/797.
convert.exe: no images defined `a.jpg' @ error/convert.c/ConvertImageCommand/323
0.

更新:
在 SO 社区帮助我解决了这个问题后,我整理了一个小工具来批量转换图像。希望它能帮助别人。 https://github.com/MattDolan/ImageConverter

您需要安装 Ghostscript 才能使用 ImageMagick 栅格化矢量文件(PDF、EPS、PS 等)。在执行这些操作时,IM 将 shell 输出到 Ghostscript(如果您在 IM 调用中使用 -verbose 标签,您可以看到它)。您也可以单独使用 Ghostscript 来栅格化矢量文件。

既然你实际上必须安装 Ghostscript 才能做到这一点,为什么不一起放弃 ImageMagick?它只是将命令转发给 Ghostscript,不添加任何值,只是需要更长的时间来处理(并将所有内容加载到 RAM 中)。

安装 GhostScript 和 运行 命令:

gswin64c.exe -dNOPAUSE -sDEVICE=jpeg -r200 -dJPEGQ=60 -sOutputFile=foo-%03d.jpg foo.pdf -dBATCH

这与 运行ning:

相同且更快
convert -quality 60 -density 200 foo.pdf foo-%03d.jpg

它现在在文档中。 https://github.com/dlemstra/Magick.NET/blob/master/Documentation/ConvertPDF.md

You need to install the latest version of GhostScript before you can convert a pdf using Magick.NET.

Make sure you only install the version of GhostScript with the same platform. If you use the 64-bit version of Magick.NET you should also install the 64-bit version of Ghostscript. You can use the 32-bit version together with the 64-version but you will get a better performance if you keep the platforms the same.

这是一个包装器:https://archive.codeplex.com/?p=ghostscriptnet

从这里安装 GhostScript GNU Affero General Public 许可证。

我发现我已经安装了GhostScript,但是GhostScript 无法执行,因为它需要额外的库。通过在命令行中键入“gs”,我能够看到缺少哪些库。