Question Impossible de convertir un fichier PDF en image en raison d'une erreur "aucune image définie"


J'ai le fichier PDF suivant: http://www.fmwconcepts.com/misc_tests/pdf_tests/test.pdf

Mais quand j'essaie de le convertir via:

$ convert test.pdf test.png

J'ai l'erreur suivante:

convert: no images defined `test.png' @ error/convert.c/ConvertImageCommand/3187.

J'ai les versions suivantes:

$ brew info libpng
libpng: stable 1.6.13 (bottled)

$ brew info libjpeg
jpeg: stable 8d (bottled)

$ brew info imagemagick
imagemagick: stable 6.8.9-7 (bottled), HEAD
http://www.imagemagick.org
/usr/local/Cellar/imagemagick/6.8.9-1 (1432 files, 22M) *
  Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/imagemagick.rb
==> Dependencies
Build: xz , pkg-config 
Required: libtool 
Recommended: jpeg , libpng , freetype 
Optional: fontconfig , libtiff , little-cms , little-cms2 , libwmf ✘, librsvg ✘, liblqr ✘, openexr ✘, ghostscript ✘, webp ✘

J'ai le journal de débogage suivant:

$ convert test.pdf test.png -debug all
2014-10-01T15:29:39+01:00 0:00.000 0.000u 6.8.9 Configure convert[58320]: utility.c/ExpandFilenames/944/Configure
  Command line: convert {test.pdf} {test.png} {-debug} {all}
2014-10-01T15:29:39+01:00 0:00.000 0.000u 6.8.9 Configure convert[58320]: configure.c/GetConfigureOptions/679/Configure
  Searching for configure file: "/usr/local/Cellar/imagemagick/6.8.9-1/share/ImageMagick-6/coder.xml"
...
2014-10-01T15:29:39+01:00 0:00.020 0.010u 6.8.9 Module convert[58320]: module.c/OpenModule/1268/Module
  Searching for module "PNG" using filename "png.la"
2014-10-01T15:29:39+01:00 0:00.020 0.010u 6.8.9 Module convert[58320]: module.c/GetMagickModulePath/554/Module
  Searching for coder module file "png.la" ...
2014-10-01T15:29:39+01:00 0:00.020 0.010u 6.8.9 Module convert[58320]: module.c/OpenModule/1277/Module
  Opening module at path "/usr/local/Cellar/imagemagick/6.8.9-1/lib/ImageMagick//modules-Q16/coders/png.la"
2014-10-01T15:29:39+01:00 0:00.020 0.010u 6.8.9 Module convert[58320]: module.c/OpenModule/1304/Module
  Method "RegisterPNGImage" in module "PNG" at address 0x10a9fdb60
2014-10-01T15:29:39+01:00 0:00.020 0.010u 6.8.9 Module convert[58320]: module.c/OpenModule/1318/Module
  Method "UnregisterPNGImage" in module "PNG" at address 0x10aa0785d
2014-10-01T15:29:39+01:00 0:00.020 0.010u 6.8.9 Policy convert[58320]: policy.c/IsRightsAuthorized/574/Policy
  Domain: Path; rights=Read; pattern="test.png" ...
...
2014-10-01T15:29:39+01:00 0:00.020 0.010u 6.8.9 Configure convert[58320]: locale.c/LoadLocaleCache/1186/Configure
  Loading locale configure file "/usr/local/Cellar/imagemagick/6.8.9-1/share/ImageMagick-6/english.xml" ...
2014-10-01T15:29:39+01:00 0:00.020 0.020u 6.8.9 Exception convert[58320]: blob.c/OpenBlob/2657/Exception
  unable to open image `test.png': No such file or directory
2014-10-01T15:29:39+01:00 0:00.020 0.020u 6.8.9 Cache convert[58320]: cache.c/DestroyPixelCache/962/Cache
  destroy 
2014-10-01T15:29:39+01:00 0:00.020 0.020u 6.8.9 Policy convert[58320]: policy.c/IsRightsAuthorized/574/Policy
  Domain: Coder; rights=Read; pattern="PNG" ...
2014-10-01T15:29:39+01:00 0:00.030 0.020u 6.8.9 Coder convert[58320]: png.c/ReadPNGImage/4015/Coder
  Enter ReadPNGImage()
2014-10-01T15:29:39+01:00 0:00.030 0.020u 6.8.9 Policy convert[58320]: policy.c/IsRightsAuthorized/574/Policy
  Domain: Path; rights=Read; pattern="test.png" ...
2014-10-01T15:29:39+01:00 0:00.030 0.020u 6.8.9 Exception convert[58320]: blob.c/OpenBlob/2657/Exception
  unable to open image `test.png': No such file or directory
2014-10-01T15:29:39+01:00 0:00.030 0.020u 6.8.9 Exception convert[58320]: png.c/ReadPNGImage/4021/Exception
  unable to open file `test.png'

Mais ne montre rien de évident. Et il semble que ce journal de débogage se comporte complètement différent que sans -debug, car l'erreur d'origine n'est pas là. Voir le journal complet.

Il y a un problème similaire à http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=22466, mais je ne comprends pas vraiment quelle est la solution.


67
2017-10-01 14:25


origine




Réponses:


Vous manquez la dépendance Ghostscript facultative gs - qui n'est pas facultatif si vous souhaitez convertir un fichier PDF.

Si which gs ne se résout pas au fichier binaire ghostscript (par exemple, vous avez un alias du même nom), modifiez le chemin d'accès à Ghostscript dans delegates.xml.


79
2017-10-01 15:35



Dans mon cas, j'avais Ghostscript installé mais le gs la commande était cachée par un script pour lequel j'avais écrit git status. Existe-t-il un moyen d’alimenter ImageMagick le chemin complet de la gs binaire pour que je n'ai pas à supprimer mon script (ou alias)? - Sridhar-Sarnobat
Vous devrez éditer le fichier deleg.xml et spécifier l'autre emplacement. - dlemstra
debian / ubuntu: apt-get install ghostscript - Nadir


Vous pouvez également essayer de faire:

  1. brew uninstall ghostscript
  2. brew install ghostscript

Cela a corrigé pour moi.


57
2017-12-11 04:17



Cela a fait l'affaire! - line-o


J'avais un problème similaire. Les corrections ci-dessus n'ont rien fait pour moi, mais il semble que ImageMagick utilisait html2ps intérieurement.

Donc, la solution était d'installer ça. Je ne suis pas sous OS X, donc pour moi la solution était:

apt install html2ps

J'espère que cela aidera quelqu'un.


-1
2017-08-25 23:38



apt ou apt-get? - kenorb
apt si vous l'avez. C'est le remplacement de apt-get. - mlissner
ImageMagick utilisait html2ps en interne pour convertir du pdf au png ici? - rogerdpack