Imagemagick Преобразование PDF в JPEG: FailedToExecuteCommand ` "gswin32c.exe" /PDFDelegateFailed

У меня есть PDF файлы, которые мне нужно преобразовать в образы. Я установил Imagemagick. У меня есть PDF с именем a.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.

Ответы

Ответ 1

Вам необходимо установить Ghostscript, чтобы растрировать векторные файлы (PDF, EPS, PS и т.д.) с помощью ImageMagick. При выполнении этих манипуляций IM будет выходить в Ghostscript (вы можете увидеть его, если вы используете тег -verbose в вызове IM). Вы также можете использовать Ghostscript для растеризации векторных файлов.

Ответ 2

Поскольку вам действительно нужно установить Ghostscript для этого, почему бы не удалить ImageMagick все вместе? Он просто пересылает команду Ghostscript в любом случае, не добавляя никакой ценности, просто занимая больше времени для обработки (и загружая все в ОЗУ, пока он на ней).

Установите GhostScript и запустите команду:

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

Это идентично и быстрее, чем запуск:

convert -quality 60 -density 200 foo.pdf foo-%03d.jpg

Ответ 3

Это в документах сейчас. https://github.com/dlemstra/Magick.NET/blob/master/Documentation/ConvertPDF.md

Вам необходимо установить последнюю версию GhostScript, прежде чем вы сможете конвертировать pdf с помощью Magick.NET.

Убедитесь, что вы устанавливаете только версию GhostScript с той же платформой. Если вы используете 64-разрядную версию Magick.NET, вам также следует установить 64-разрядную версию Ghostscript. Вы можете использовать 32-битную версию вместе с 64-версией, но вы получите лучшую производительность, если будете поддерживать платформы одинаковыми.

Вот обертка: https://archive.codeplex.com/?p=ghostscriptnet