diff --git a/inc/inc.ClassConversionServicePdfToImage.php b/inc/inc.ClassConversionServicePdfToImage.php index 69623aa5b..fb8f6d91b 100644 --- a/inc/inc.ClassConversionServicePdfToImage.php +++ b/inc/inc.ClassConversionServicePdfToImage.php @@ -34,6 +34,17 @@ class SeedDMS_ConversionServicePdfToImage extends SeedDMS_ConversionServiceBase $this->timeout = 5; } + public function getInfo() { + return "Convert with imagick php functions"; + } + + public function getAdditionalParams() { /* {{{ */ + return [ + ['name'=>'width', 'type'=>'number', 'description'=>'Width of converted image'], + ['name'=>'page', 'type'=>'number', 'description'=>'Page of Pdf document'], + ]; + } /* }}} */ + public function convert($infile, $target = null, $params = array()) { $start = microtime(true); $imagick = new Imagick(); @@ -41,9 +52,12 @@ class SeedDMS_ConversionServicePdfToImage extends SeedDMS_ConversionServiceBase * A resolution of 72,72 will create a 596x842 image */ $imagick->setResolution(36,36); - if($imagick->readImage($infile.'[0]')) { + $page = 0; + if(!empty($params['page']) && intval($params['page']) > 0) + $page = intval($params['page'])-1; + if($imagick->readImage($infile.'['.$page.']')) { if(!empty($params['width'])) - $imagick->scaleImage((int) $params['width'], 0); + $imagick->scaleImage(min((int) $params['width'], $imagick->getImageWidth()), 0); $imagick->setImageFormat('png'); $end = microtime(true); if($this->logger) {