pdf в jpg с ImageMagick

Установил на локальный сервер imagemagick, но не понимаю как конвертировать ВСЕ страницы pdf файла в одно изображение jpg. И возможно ли это вообще.

Без указания номера страницы конвертирует только первую страницу

    $im = new imagick( "libs/pdf/files/$Jfile" );
    // convert to jpg
    $im->setImageColorspace(255);
    $im->setCompression(Imagick::COMPRESSION_JPEG);
    $im->setCompressionQuality(60);
    $im->setImageFormat('jpeg');
    //resize
    $im->resizeImage(385, 500, imagick::FILTER_LANCZOS, 1);  
    //write image on server
    $im->writeImage("libs/pdf/files/$JPGfile");
    $im->clear();
    $im->destroy();

person ordman    schedule 14.10.2015    source источник


Ответы (1)


Два варианта...

Вариант 1

Чтобы каждая страница PDF выводилась как отдельный JPEG, измените 3-ю последнюю строку:

$im->writeImage("libs/pdf/files/$JPGfile");

на что-то вроде:

$im->writeImages("z%03d.jpg",false);

Вариант 2

Чтобы все страницы PDF-файла отображались в виде длинного списка, измените комментарий «записать изображение на сервер» на следующий:

// Write on server
$im->resetIterator();
$appended = $im->appendImages(true);
$appended->writeImage("appended.jpg");

Измените true на false в зависимости от того, хотите ли вы длинный список изображений или широкий.

person Mark Setchell    schedule 14.10.2015