Impossible de convertir un fichier PDF en image, en raison de l'erreur 'Aucune image définie'

83

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

Mais quand j'essaye 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 d’évident. Et il semble que ce journal de débogage se comporte de manière complètement différente de celle sans -debug, car l'erreur d'origine n'y est pas. Voir le journal complet .

Il existe un problème similaire sur http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=22466 , mais je ne comprends pas très bien quelle est la solution.

Kenorb
la source

Réponses:

91

Il vous manque la dépendance optionnelle Ghostscript gs, qui n'est pas facultative si vous souhaitez convertir un fichier PDF.

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

Dlemstra
la source
1
Dans mon cas, Ghostscript était installé, mais la gscommande était masquée par un script pour lequel j'avais écrit git status. Y at-il un moyen de nourrir ImageMagick le chemin complet du gsbinaire afin que je n'ai pas à supprimer mon script (ou alias)?
Sridhar Sarnobat
2
Vous devrez éditer le fichier delegates.xml et spécifier un autre emplacement.
dlemstra
debian / ubuntu: apt-get install ghostscript
Nadir
69

Vous pouvez aussi essayer de faire:

  1. brew uninstall ghostscript
  2. brew install ghostscript

Cela a réglé le problème pour moi.

hotmeteor
la source
Cela a fait le tour!
line-o
-1

J'avais un problème similaire. Les correctifs ci-dessus ne m'ont rien apporté, mais il semblerait que ImageMagick l'utilisait en html2psinterne.

La solution consistait donc à installer cela. Je ne suis pas sous OS X, donc pour moi la solution était:

apt install html2ps

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

mlissner
la source
aptou apt-get?
Kenorb
1
apt si vous en avez. C'est le remplacement d'apt-get.
mlissner
ImageMagick utilisait html2ps en interne pour convertir les fichiers pdf en png ici?
rogerdpack