Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to install, test, convert, resize PDF using ImageMagick, Ghostscript, Windows Vista/7 x64

I'm having trouble with getting ImageMagick and Ghostscript to work together - everything seems difficult, from installation, to testing, to actually using the software. Does anyone have any tips?

like image 752
Ben Avatar asked Jul 14 '10 04:07

Ben


2 Answers

I was facing the same issue I installed Ghostscript 9.54.0 for Windows (64 bit) it solved my issue:

Followed the following steps:

  1. Go to https://www.ghostscript.com/download.html clicked Ghostscript under "Postscript and PDF interpreter/renderer:". It opened a new page: https://www.ghostscript.com/download/gsdnld.html

  2. From the page installed Ghostscript 9.54.0 for Windows (64 bit).

  3. After downloading install it on the windows machine.

After that restated kernel and re-executed jupyter notebook.

like image 154
Yogesh Awdhut Gadade Avatar answered Oct 15 '22 21:10

Yogesh Awdhut Gadade


Steve already provided a guide on running the command line version of ImageMagick from PHP. After having a similar experience installing the extension version of ImageMagick, I'd like to elaborate a bit on how the different components work together.

Imagick (the PHP extension)

First you'll need the PHP extension. It's basically an adapter between PHP and the ImageMagick functions.

  • Choose a version from http://windows.php.net/downloads/pecl/releases/imagick/
  • Download the extension matching your PHP version in architecture (probably 32bit), thread-safe-ness and compiler (VC9 or VC11), see phpinfo
  • Copy php_imagick.dll from the extension ZIP to the PHP extension directory

However, this is not enough. The php_imagick.dll does not contain any ImageMagick functionality and the CORE_RL_... DLLs that come bundled with the extension are not complete. You're gonna need some more DLLs from an ImageMagick release as well.

Theoretically the version doesn't have to match exactly, but apparently somewhere between ImageMagick 6.8.1 and 6.8.8 the function MagickGetImageMatte has been removed from the DLLs, so the safest way is to find the exact same ImageMagick release that the Imagick extension was build for:

  • In Windows Explorer, see Properties → Details of the bundled CORE_RL_wand_.dll to find the version of ImageMagick that this extension is made for. (You should also be able to find this information in phpinfo.)
  • Download that exact ImageMagick version, for example from http://windows.php.net/downloads/pecl/deps/ (thanks to this guy for the link)
  • Copy all the DLLs from the ImageMagick ZIP to the same directory where php5(n)ts.dll (the PHP engine for Apache) is

It is not necessary to install ImageMagick. In fact, if you happen to have an incompatible ImageMagick in your PATH, the PHP extension might fail.

Ghostscript

This applies to both the command line version of ImageMagick (convert) and the PHP extension described above.

For reading files of the Postscript family, Ghostscript is needed.

ImageMagick will find Ghostscript following these steps:

  • If there is a GS_DLL entry in the registry, pointing to the path of gswin32.dll, it will use that one and ignore the delegates altogether.
  • Otherwise it will consult it's "delegates". There seems to be a hardcoded fallback, but you can override it by putting a delegates.xml next to php5(n)ts.dll or convert.exe respectively or in ~\.magick.
  • If it finds the string @PS_Delegate@ in the delegate, it will replace it with gswin32c.exe and then continue looking for that EXE in the PATH. You can replace this string with the full path to gswin32c.exe or even gswin64c.exe that ImageMagick should call.
like image 21
AndreKR Avatar answered Oct 15 '22 20:10

AndreKR