Convert PDF to JPEG with PHP and ImageMagick

Leon van der Veen picture Leon van der Veen · Feb 10, 2012 · Viewed 80.5k times · Source

I'm using a litte script to convert PDF to JPG. That works but the quality is very poor.

The script:

$im = new imagick( 'document.pdf[ 0]' ); 
$im->setImageColorspace(255); 
$im->setResolution(300, 300);
$im->setCompressionQuality(95); 
$im->setImageFormat('jpeg'); 
$im->writeImage('thumb.jpg'); 
$im->clear(); 
$im->destroy();

One more thing, I want to keep the original size of the PDF but the conversion crops the size of the JPG.

Answer

wojtek picture wojtek · Sep 13, 2012

It can be done using setResolution, but you need to do it before loading an image. Try something like this:

// instantiate Imagick 
$im = new Imagick();

$im->setResolution(300,300);
$im->readimage('document.pdf[0]'); 
$im->setImageFormat('jpeg');    
$im->writeImage('thumb.jpg'); 
$im->clear(); 
$im->destroy();