web-dev-qa-db-fra.com

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

J'ai des fichiers PDF que je dois convertir en images. J'ai installé Imagemagick. J'ai un PDF nommé a.pdf que je peux ouvrir (il n'est pas corrompu) dans le dossier C:\Convert \

Depuis la ligne de commande, j'essaie

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

Et je reçois l'erreur.

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.

MISE À JOUR:
Après que la communauté SO m'a aidé à résoudre ce problème, j'ai créé un petit outil pour convertir des images par lots. J'espère que cela aidera quelqu'un. https://github.com/MattDolan/ImageConverter

37
MatthewD

Vous devez installer Ghostscript afin de pixelliser des fichiers vectoriels (PDF, EPS, PS, etc.) avec ImageMagick. IM enverra un shell à Ghostscript lors de ces manipulations (vous pouvez le voir si vous utilisez la balise - verbose dans votre invocation IM). Vous pouvez également utiliser Ghostscript seul pour pixelliser des fichiers vectoriels.

43
Crontab

Puisque vous devez réellement installer Ghostscript pour ce faire, pourquoi ne pas supprimer ImageMagick tous ensemble? Il transmet simplement la commande à Ghostscript de toute façon, sans ajouter de valeur, prenant juste beaucoup plus de temps à traiter (et tout charger dans RAM pendant qu'il y est).

Installez GhostScript et exécutez la commande:

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

Ceci est identique et plus rapide que l'exécution:

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

C'est dans les documents maintenant. https://github.com/dlemstra/Magick.NET/blob/master/Documentation/ConvertPDF.md

Vous devez installer la dernière version de GhostScript avant de pouvoir convertir un pdf à l'aide de Magick.NET.

Assurez-vous que vous installez uniquement la version de GhostScript avec la même plate-forme. Si vous utilisez la version 64 bits de Magick.NET, vous devez également installer la version 64 bits de Ghostscript. Vous pouvez utiliser la version 32 bits avec la version 64 mais vous obtiendrez de meilleures performances si vous gardez les plates-formes identiques.

Voici un wrapper: https://archive.codeplex.com/?p=ghostscriptnet

2
Jaberwocky