PHP pdf转png windows版本

摘要:
链接:https://pan.baidu.com/s/1Bli-2HkucRTYTeujkcsmjg&shfl=sharepset提取代码:2une1.php _ Imagick扩展(1)下载php_ Imagik扩展下载地址1:http://windows.php.net/downloads/pecl/releases/imagick/下载地址2:https://pecl.php.net

链接:https://pan.baidu.com/s/1Bli-2HkucRTYTeujkcsmjg&shfl=sharepset
提取码:2une

1.php_imagick扩展 

  (1)下载php_imagick扩展

  下载地址一: http://windows.php.net/downloads/pecl/releases/imagick/
  下载地址二: https://pecl.php.net/package/imagick
  要点: 注意对应php版本 ts还是nts x86还是x64
  这里以phpinfo()为准
PHP pdf转png windows版本第1张

 (2)安装 

  解压上述文件后,将php_imagick.dll复制到php/ext目录,或者其他你的存放拓展的目录
  修改php.ini 加上extension=php_imagick.dll,注意php可能有多个ini,以phpinfo为准
  此时复制解压上述文件目录中其他dll到php目录,重启apache,此时phpinfo显示拓展安装成功,但是 ImageMagick number of supported formats为0,到这里成功安装了一半

2.imagemagick程序

 (1)imagemagick程序

  下载地址:http://windows.php.net/downloads/pecl/deps/
  imagemagick还有官网下载,此处不鼓励从imagemagick官方下载,他们的网站上我并没有找到历史版本下载,安装失败的几率很大
  下载与phpinfo提示一致的版本,此时需要注意  : 1.软件版本对应     2.vc11还是vc14 3.x86还是x64 都要以phpinfo为准

 (2)安装imagemagick 

  下载的文件解压后,将程序整体复制到无空格 无中文字符的目录中 E:Program Files (x86)
  配置环境变量,在“此电脑”右键“属性”,以此点击“高级” “环境变量” ,在 “系统变量”中找到键为path的数据,双击path,选择“新建”,将刚刚放程序的目录“E:Program Files (x86)ImageMagickin”填入即可
  将“E:Program Files (x86)ImageMagickin”目录中的所有的以“.DLL‘为后缀的文件放入php的根目录,应该有145个

  重启计算机

  然后你就可以在phpinfo里看到

PHP pdf转png windows版本第2张

   注意:如果运行php代码出现

3.安装ghostscript

  https://www.ghostscript.com/download/gsdnld.html

  下载适合电脑的版本,安装后将安装目录的bin目录配置到环境变量里,运行cmd,  运行gswin64出现以下画面就是安装成功(我安装的是windows64位的,所以命令是gswin64)

PHP pdf转png windows版本第3张

  注意:如果ghostscript的版本不适合的时候运行php会导致php-cgi崩溃,如果出现这种情况就是ghostscript版本不适合

4.php代码

    /**
     * 将pdf文件转化为多张png图片
     * @param string $pdf  pdf所在路径 (/www/pdf/abc.pdf pdf所在的绝对路径)
     * @param string $path 新生成图片所在路径 (/www/pngs/)
     *
     * @return array|bool
     */
    function pdf2png($pdf, $path)
    {
        if (!extension_loaded('imagick')) {
            return false;
        }
        if (!file_exists($pdf)) {
            return false;
        }
        $im = new Imagick();
        $im->setResolution(120, 120); //设置分辨率 值越大分辨率越高
        $im->setCompressionQuality(100);
        $im->readImage($pdf);
        foreach ($im as $k => $v) {
            $v->setImageFormat('png');
            $fileName = $path . md5($k . time()) . '.png';
            if ($v->writeImage($fileName) == true) {
                $return[] = $fileName;
            }
        }
        return $return;
    }

    /**
     * 将pdf转化为单一png图片
     * @param string $pdf  pdf所在路径 (/www/pdf/abc.pdf pdf所在的绝对路径)
     * @param string $path 新生成图片所在路径 (/www/pngs/)
     *
     * @throws Exception
     */
    function pdf2png2($pdf, $path)
    {
        try {
            $im = new Imagick();
            $im->setCompressionQuality(100);
            $im->setResolution(120, 120);//设置分辨率 值越大分辨率越高
            $im->readImage($pdf);

            $canvas = new Imagick();
            $imgNum = $im->getNumberImages();
            //$canvas->setResolution(120, 120);
            $old_height = 0;
            foreach ($im as $k => $sub) {
                $sub->setImageFormat('png');
                //$sub->setResolution(120, 120);
                $sub->stripImage();
                $sub->trimImage(0);
                $width  = $sub->getImageWidth() + 10;
                $height = $sub->getImageHeight() + 10;
                if ($k + 1 == $imgNum) {
                    //最后一页空白高度处理
                    $height = $old_height;
                }else{
                    $old_height = $height;
                }
                $canvas->newImage($width, $height, new ImagickPixel('white'));
                $canvas->compositeImage($sub, Imagick::COMPOSITE_DEFAULT, 5, 5);
            }

            $canvas->resetIterator();
            $canvas->appendImages(true)->writeImage($path . microtime(true) . '.png');
        } catch (Exception $e) {
            throw $e;
        }
    }

5.效果图

PHP pdf转png windows版本第4张

注意:文件太大时要注意php的运行最长时间time of 30 seconds exceeded的报错。

  解决方法: 在php.ini中增加运行时间:max_execution_time=300   或者  在PHP文件中添加如下代码ini_set('max_execution_time', 300); //300 seconds = 5 minutes

免责声明:文章转载自《PHP pdf转png windows版本》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【Excle数据透视表】如何按照地区交替填充背景颜色Netty中的这些知识点,你需要知道!下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ecshop第一讲之安装

  今天开始对Ectouch做一些研究,但是发现网上资源很少,而且官网对服务都需收费;并且提供的wiki、官方文档等都是空的,瞬间感觉,,,,后来开始海量搜索,最后发现只有论坛还有些东西可以看看,并对海量资源进行了有用性的分析整理。今天开始慢慢收录一些自己认为重要的、对理解有用的东西。如果后续相关内容对您的一些引用不当,请联系我修改   ectouch安装...

天网计划 php skymvc框架

简介:这是天网计划 php skymvc框架的详细页面,介绍了和php,有关的知识、技巧、经验,和一些php源码等。 frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=339493' scrolling='no'>skymvc是一款轻量、简单的phpmvc框架,借鉴了各大...

自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版

Nginx比apache要好,优点很多,随便去搜寻引擎找一下就能找到一大把资料,这不是我们讨论的重点,我们的重点是自己做一个运行组合!為何我不從網上下載一個別人已經封裝好的現成的版本呢?因為很多人封裝了之後就不在更新了,以後想要更新都不知道怎麼做,既然如此還不如自己好好研究一下自己封裝,將來要升級也不用求人,藝不壓身! 我说下我搭配的这个组合的特点:...

OneinStack——PHP多版本共存

前言 我事先安装的是LNMP环境,PHP版本为7.2,但是现在环境需要一个PHP5.6,所以就准备安装个上版本,顺带写个安装教程,写完后我发现了原来有直接安装的命令!所以后面的内容大家可以忽略了!从配置nginx文件看就好了! ./oneinstack/install.sh –mphp_ver 56 详细参数 version: 2.0 updated...

如何使用asp.net导出PDF文件

PDF简介:PDF(Portable Document Format)文件格式是Adobe公司开发的电子文件格式。这种文件格式与操作系统平台无关,也就是说,PDF文件不管是在Windows,Unix还是在苹果公司的Mac OS操作系统中都是通用的。这一特点使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式。越来越多的电子图书、产品说...

QQ会员AMS平台PHP7升级实践

作者:徐汉彬链接:https://zhuanlan.zhihu.com/p/21493018来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。QQ会员活动运营平台(AMS),是QQ会员增值运营业务的重要载体之一,承担海量活动运营的Web系统。AMS是一个主要采用PHP语言实现的活动运营平台, CGI日请求3亿左右,高峰期达到8亿...