2013-04-17 21 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。确保将$毗邻标志设置为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