• 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>";
    }
    ?> 
     (码字不易,且看且珍惜!如有错误,请多多指教!)
     
     
     
     
  • 相关阅读:
    环境装好,开始学习
    懒惰了
    我的net试验田
    时间不够用
    【转帖】关于委托的精彩解说(非常形象)
    【转帖】 CLR 全面透彻解析:托管和本机代码互操作性
    【转贴】C#中的API32
    【转帖】Windows Mobile 开发系列文章收藏 Windows Mobile 6.x
    弹跳圣经——扣篮梦
    【转帖】.Net中C#的DllImport的用法
  • 原文地址:https://www.cnblogs.com/E1900/p/8399671.html
Copyright © 2020-2023  润新知