No se puede convertir PDF en imagen, debido al error 'no hay imágenes definidas'

83

Tengo el siguiente archivo PDF: http://www.fmwconcepts.com/misc_tests/pdf_tests/test.pdf

Pero cuando intento convertirlo a través de:

$ convert test.pdf test.png

Tengo el siguiente error:

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

Tengo las siguientes versiones:

$ 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 ✘

Tengo el siguiente registro de depuración:

$ 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'

Pero no muestra nada obvio. Y parece que este registro de depuración se comporta completamente diferente que sin él -debug, porque el error original no está allí. Ver el registro completo .

Hay un problema similar en http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=22466 , pero aún no entiendo cuál es la solución.

kenorb
fuente

Respuestas:

91

Le falta la dependencia opcional de Ghostscript gs, que no es opcional si desea convertir un archivo PDF.

Si which gsno se resuelve el binario ghostscript (por ejemplo, tiene un alias con el mismo nombre), edite la ruta a Ghostscript en delegates.xml.

dlemstra
fuente
1
En mi caso tenía instalado Ghostscript pero el gscomando estaba oculto por un script para el que escribí git status. ¿Hay alguna manera de alimentar a ImageMagick con la ruta completa del gsbinario para que no tenga que eliminar mi script (o alias)?
Sridhar Sarnobat
2
Deberá editar el archivo delegates.xml y especificar la ubicación alternativa.
dlemstra 03 de
debian / ubuntu: apt-get install ghostscript
Nadir
69

También puedes intentar hacer:

  1. brew uninstall ghostscript
  2. brew install ghostscript

Eso me lo arregló.

Hotmeteor
fuente
Eso hizo el truco!
línea-
-1

Tuve un problema similar. Las correcciones anteriores no hicieron nada por mí, pero parece que ImageMagick estaba usando html2psinternamente.

Entonces, la solución fue instalar eso. No estoy en OS X, así que para mí la solución fue:

apt install html2ps

Esperemos que esto ayude a alguien.

mlissner
fuente
apto apt-get?
kenorb
1
apto si lo tienes. Es el reemplazo de apt-get.
mlissner
ImageMagick estaba usando html2ps internamente para convertir de pdf a png aquí?
rogerdpack