将所有pdf页面转换为图像

时间:2013-06-25 05:52:37

标签: php pdf

在使用Imagick的php中,我可以将一个pdf页面一次转换为jpg图像。但我需要将我的pdf的所有页面转换为单独文件夹中的jpg文件。

在我的代码下面

<?php 
  for($i=0;$i<=20;$i++){
  $pdf_file   = 'book.pdf';
  $save_to    = 'pages/tw'.$i.'.jpg';
  $img = new imagick();
  $img->setResolution(200,200);
  $img->readImage("{$pdf_file}[$i]");
  $img->scaleImage(800,0);
  $img->setImageFormat('jpg'); 
  $img = $img->flattenImages();
  $img->writeImages($save_to, false);
  $img->destroy();     
 }
 ?> 

以上代码可生成最多10页的结果。然后它以30秒的执行时间终止。我无法管理php.ini,因为我正在使用其他公司托管。

1 个答案:

答案 0 :(得分:1)

 $mypdf = escapeshellarg( "mysafepdf.pdf" );

  $newjpg = escapeshellarg( "output.jpg" );

  $result = 0;

  exec("convert -density 600 {$mypdf} {$newjpg} -colorspace RGB -resample 300", null, $result);
如果转换有效,

$ result将为0

-density = dpi

我希望这会对你有所帮助!

PS:这仅适用于一张图片,但您可以根据自己的价格进行调整。