zoukankan      html  css  js  c++  java
  • php(thinkphp)在linux系统下pdf转png图片【转】

    PHP)中使用imagick实现把PDF转成图片

    操作之前,先在linux服务器安装 ghostscript

    650 2017-06-17 13:31:20 root cd ./soft
    651 2017-06-17 13:31:25 root wget http://ghostscript.com/releases/ghostscript-8.71.tar.gz
    652 2017-06-17 13:41:14 root tar zxvf ghostscript-8.71.tar.gz
    653 2017-06-17 13:41:26 root cd ghostscript-8.71
    654 2017-06-17 13:41:37 root ./configure --prefix=/usr
    655 2017-06-17 13:42:06 root mkdir obj
    656 2017-06-17 13:42:15 root mkdir bin
    657 2017-06-17 13:42:23 root make all
    658 2017-06-17 13:45:29 root make install

    然后重启一下:

    use Imagick;
    /**
    * 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))
    {
    echo dirname($pdf);
    echo "file not exit";
    return false;
    }

    $im = new Imagick();


    $im->setResolution(120,120);
    $im->setCompressionQuality(100);
    try {
    if($page==-1){
    $im->readImage($pdf);
    }else{
    $im->readImage($pdf."[".$page."]");
    }
    } catch (Exception $e) {
    Log::notice($e->getMessage());
    }
    foreach ($im as $Key => $Var)
    {
    $Var->setImageFormat('png');
    $filename = $path."/". md5($Key.time()).'.png';
    if($Var->writeImage($filename) == true)
    {
    $Return[] = $filename;
    }
    }
    return $Return;
    }

    function cpdf2png()
    {
    $path="public/files";//请确保当前目录下有这个文件夹,由于一直要用,所以就不加检测了
    $s=self::pdf2png("public/files/bp/36.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 src="".$s[$i].""></a></div><p>";
    }
    }

    完全是参考:http://www.jb51.net/article/60337.htm 这篇文章。非常感谢

  • 相关阅读:
    CentOS 7/8修改系统运行级别
    Sketchup 汇总
    [转]Ruby之类的真相
    [转]Ruby之代码块的迷思
    [转]ruby中的异常处理
    [转]ruby中Class的allocate
    [转]ruby中require和load的区别
    [转]ruby之方法查找
    [转]ruby之动态方法
    [转] ruby之对象体系
  • 原文地址:https://www.cnblogs.com/lippor/p/7040085.html
Copyright © 2011-2022 走看看