Tidak dapat mengonversi PDF menjadi gambar, karena kesalahan 'tidak ada gambar yang ditentukan'

83

Saya memiliki file PDF berikut: http://www.fmwconcepts.com/misc_tests/pdf_tests/test.pdf

Tetapi ketika saya mencoba mengubahnya melalui:

$ convert test.pdf test.png

Saya memiliki kesalahan berikut:

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

Saya sudah versi berikut:

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

Saya sudah log debug berikut:

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

Tetapi tidak menunjukkan sesuatu yang jelas. Dan tampaknya log debug ini berperilaku sangat berbeda daripada tanpa -debug, karena kesalahan aslinya tidak ada. Lihat log lengkapnya .

Ada masalah serupa di http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=22466 , tapi saya tidak mengerti apa solusinya.

kenorb
sumber

Jawaban:

91

Anda kehilangan dependensi Ghostscript opsional gs- yang tidak opsional jika Anda ingin mengonversi file PDF.

Jika which gstidak menyelesaikan biner ghostscript (misalnya Anda memiliki alias dengan nama yang sama), edit path ke Ghostscript di delegates.xml.

dlemstra
sumber
1
Dalam kasus saya, saya menginstal Ghostscript tetapi gsperintahnya disembunyikan oleh script yang saya tulis git status. Apakah ada cara untuk memberi makan ImageMagick path lengkap gsbiner sehingga saya tidak harus menghapus skrip saya (atau alias)?
Sridhar Sarnobat
2
Anda perlu mengedit file delegates.xml dan menentukan lokasi alternatif.
dlemstra
debian / ubuntu: apt-get install ghostscript
Nadir
69

Anda juga dapat mencoba melakukan:

  1. brew uninstall ghostscript
  2. brew install ghostscript

Itu memperbaikinya bagi saya.

panas meteor
sumber
Itu berhasil!
line-o
-1

Saya punya masalah serupa. Perbaikan di atas tidak melakukan apa pun untuk saya, tetapi sepertinya ImageMagick menggunakan html2psinternal.

Jadi, solusinya adalah menginstalnya. Saya tidak menggunakan OS X, jadi bagi saya solusinya adalah:

apt install html2ps

Semoga ini bisa membantu seseorang.

mlissner
sumber
aptatau apt-get?
kenorb
1
apt jika Anda memilikinya. Ini pengganti apt-get.
mlissner
ImageMagick menggunakan html2ps secara internal untuk mengkonversi dari pdf ke png di sini?
rogerdpack