php中使用imagemagick实现把PDF转成图片(以php5.3为例)

本文以windows7+php5.3为例(php5.5以上版本教程及资源网上多):
所需资源(imagick + GPL Ghostscript + vc9):链接:https://pan.baidu.com/s/1mj0Sa84 密码:zlzr
开发步骤:
根据php版本下载对应的ImageMagick版本,php5.3对应的imagick版本是6.8-6.9,
1. 安装ImageMagick
安装时,路径中不能出现空格比如D:Program Files (x86)ImageMagick 这样是错误的。建议安装目录为D:\ImageMagick,使用默认选项安装即可。
安装完成后,检查D:\ImageMagick是否加添加到了环境变量。
检查方法:计算机(我的电脑)-> 右键属性 -> 高级系统设置 -> 高级 -> 环境变量 -> 系统变量 -> Path
 
然后选中Path,点击编辑,查看ImageMagick安装路径是否在变量值中,如果没有,请添加进去,注意用英文的分号分隔:
 
2. 把下载下来的php_imagick.dll放到php 扩展文件目录 php/ext 中。
3. 在 php.ini 配置文件中添加,extension=php_imagick.dll。
4. 将ImageMagick安装目录下的这些文件拷贝到php根目录下
 
5. 重启电脑,只重启apache不管用的情况下,重启下PC。因为扩展底层使用的是imageMagic软件,所以软件重启电脑,重新加载软件,并刷新path路径。
6. 重启后,打开 phpinfo页面,查看,扩展已经安装成功。如果还未安装成功,极有可能imagemagick软件版本过高,请选择更低一级的版本安装。
7. 安装GPL GhostScript(很多时候都忘了这步,会导致readImage那边异常了)
8. PHP将PDF转成PNG的后台代码(可以根据自己需求进行改动):
 
<?php
/**
* PDF2PNG
* @param $pdf  待处理的PDF文件
* @param $path 待保存的图片路径
* @param $page 待导出的页面 -1为全部 0为第一页 1为第二页
* @return      保存好的图片路径和文件名
*/
 function pdf2png($pdf,$path,$page=-1)
{  
   if(!extension_loaded('imagick'))
   {  
       return false;  
   }  
   if(!file_exists($pdf))
   {  
       return false;  
   }  
   $im = new Imagick();  
   $im->setResolution(120,120);  
   $im->setCompressionQuality(100);
   if($page==-1)   
      $im->readImage($pdf);
   else
      $im->readImage($pdf."[".$page."]");
   foreach ($im as $Key => $Var)
   {  
       $Var->setImageFormat('png');  
       $filename = $path."/". md5($Key.time()).'.png';
       if($Var->writeImage($filename) == true)
       {  
           $Return[] = $filename;  
       }  
   }  
   return $Return;  
}  
$path="images";//请确保当前目录下有这个文件夹,由于一直要用,所以就不加检测了
$s=pdf2png("test.pdf",$path);
$scount=count($s);
for($i=0;$i<$scount;$i++)
{
   echo "<div align=center><font color=red>Page ".($i+1)."</font><br><a href="".$s[$i]."" target=_blank><img border=3 height=120 width=90 src="".$s[$i].""></a></div><p>";
}
?> 
 (码字不易,且看且珍惜!如有错误,请多多指教!)
 
 
 
 
原文地址:https://www.cnblogs.com/E1900/p/8399671.html