I'm using imagick 3.0.1 and also phmagick (http://www.francodacosta.com/phMagick/download). No matter what, both are giving me the same kind of error when I try to convert a PDF to JPEG.
For example: Postscript delegate failed `/tmp/magick-bfxIrUJ5': No such file or directory @ error/pdf.c/ReadPDFImage/669
I'm using Ghostcript-9.05 (running on /usr/local/bin/gs). Also ImageMagick-6.7.6-8 (running on /usr/local/bin/convert).
I already checked folder's permission (755). ImageMagick works wonderful from Terminal.
For example, my PHP using Imagick:
//use imagick
$im = new imagick( '/pdf/553571072.pdf' );
// convert to jpg
$im->setImageColorspace(255);
$im->setCompression(Imagick::COMPRESSION_JPEG);
$im->setImageFormat('jpeg');
//write image on server
$im->writeImage('/jpg/553571072.jpg');
By the way Imagick it's showing up in my phpinfo(). I'm working on linux/apache/amd64.
Any advice will be highly appreciated!
My contribute to the "pure PHP solution" proposed by @HelloWorld (thank you!) in the comments of the accepted answer, a little correction: one must add the variable name before extending the default PATH, so
putenv( getenv('PATH') . ':/usr/local/bin' );
won't work, butputenv( 'PATH=' . getenv('PATH') . ':/usr/local/bin' );
will*I have less than 50 points of reputation, couldn't add my comment at the right place, so i had to create a new answer :-)
OK, this finally works, thanks to the help of Nuno Franco da Costa (http://www.francodacosta.com/).
The problem was that my GhostScript path was OK for the Shell, but it was wrong for the System and PHP. To correct that you should link your
/usr/local/bin/gs
file to/usr/bin/gs
.Do the following from the Shell:
Check to see if a
gs
file already exists in/usr/bin
. If it does, we'll create a backup of it.If there is no
/usr/bin/gs
you can skip this stepNow create the link from
/usr/local/bin/gs
to/usr/bin/gs
That should solve the problem. Thanks a lot guys.
I was getting these problems using ImageMagick
ImageMagick 6.7.7-10
with GhostScript9.10
.It turns out the PDF's were corrupted, and though some newer GS versions could read them, this older version could not, given the following error.
Under Linux, you can pass the PDF's through pdftk first:
After that, everything worked for me on Ubuntu.