php把pdf导出为图片的插件imagick

2016年05月08日 20:02 by:佚名

php把pdf导出为图片需要安装imagick扩展。

一共有二个函数:

第一种

  1. /**
  2. * PDF2PNG   
  3. * @param $pdf  待处理的PDF文件
  4. * @param $path 待保存的图片路径
  5. * @param $page 待导出的页面 -1为全部 0为第一页 1为第二页
  6. * @return      保存好的图片路径和文件名
  7. */
  8.  function pdf2png($pdf,$path,$page=0)
  9. {  
  10.    if(!is_dir($path))
  11.    {
  12.        mkdir($path,true);
  13.    }
  14.    if(!extension_loaded('imagick'))
  15.    {  
  16.      echo '没有找到imagick!' ;
  17.      return false;
  18.    }  
  19.    if(!file_exists($pdf))
  20.    {  
  21.       echo '没有找到pdf' ;
  22.        return false;  
  23.    }  
  24.    $im = new Imagick();  
  25.    $im->setResolution(120,120);   //设置图像分辨率
  26.    $im->setCompressionQuality(80); //压缩比
  27.    $im->readImage($pdf."[".$page."]"); //设置读取pdf的第一页
  28.    //$im->thumbnailImage(200, 100, true); // 改变图像的大小
  29.    $im->scaleImage(200,100,true); //缩放大小图像
  30.    $filename = $path."/". time().'.png';
  31.    if($im->writeImage($filename) == true)
  32.    {  
  33.       $Return  = $filename;  
  34.    }  
  35.    return $Return;  
  36. }  
  37. $s = pdf2png('file/1371273225-ceshi_ppt.pdf','images'); 
  38. echo '<div align="center"><img src="/images/jiazai.gif" data-original="'.$s.'"></div>';

第二种

  1. function pdf2png($PDF,$Path){
  2.    if(!extension_loaded('imagick')){
  3.        return false;
  4.    }
  5.    if(!file_exists($PDF)){
  6.        return false;
  7.    }
  8.    $IM = new imagick();
  9.    $IM->setResolution(120,120);
  10.    $IM->setCompressionQuality(100);
  11.    $IM->readImage($PDF);
  12.    foreach ($IM as $Key => $Var){
  13.        $Var->setImageFormat('png');
  14.        $Filename = $Path.'/'.md5($Key.time()).'.png';
  15.        if($Var->writeImage($Filename) == true){
  16.            $Return[] = $Filename;
  17.        }
  18.    }
  19.    return $Return;
  20. }
标签:imagick