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>";
}
?> 

 

 (碼字不易,且看且珍惜!若有錯誤,請多多指教!)
相關文章
相關標籤/搜索