2013-04-17 4 views
1

Это код, который у меня есть, и он отлично работает. Я просто не считаю, что это «лучший» способ сделать это.Image Magick есть лучший способ перебора PDF-страниц (конвертировать PDF-буклет в .jpg)

<? 
    $im = new imagick(); 
    $im->setResolution(10,10); 
    $im->readimage('document.pdf'); 
    $pages = $im->getNumberImages(); 
    $im->clear(); 
    $im->destroy(); 

    for($i=0;$i<$pages;$i++) { 
     $im = new imagick(); 
     $im->setResolution(100,100); 
     $im->readimage('document.pdf['.$i.']'); 
     $im->setImageFormat('jpeg'); 
     $im->writeImage($i.'.jpg'); 
     $im->clear(); 
     $im->destroy(); 
    } 
?> 

Кто-нибудь знает, как это сделать наилучшим образом? Пожалуйста, покажи мне, как.

ответ

2

Надеюсь, это поможет кому-то.

Мое решение заключается в использовании метода writeImages. Убедитесь, что флаг $ adjoin равен false, чтобы получить отдельные файлы.

$im = new imagick(); 
$im->setResolution(100,100); 
$im->readimage('document.pdf'); 
$im->setImageFormat('jpeg'); 
$im->writeimages('document.jpg', false); 
$im->clear(); 
$im->destroy(); 

Это приведет документ-0.jpg, документ-1.jpg, документ-3.jpg т.д.

+0

Как насчет записи в другой каталог? – Piero

+0

Выяснилось, просто укажите каталог вместе с именем файла. $ im-> writeimages ('/ directory/document.jpg', false); – Piero

+0

Ницца! Кажется, тоже быстрее! – Marcel

Смежные вопросы