windows下thinkphp5.0用imagick扩展把html、PDF转为png图片输出

环境:

WINDOWS SERVER 2012
PHP Version 7.0.28
Thread Safety    disabled

imagick module version 3.4.3

PHP7.0 + thinkphp5.0

需求:

想要把html网页转化为png图片。

实现:
一、先安装PHP扩展
1.把php.imagick.dll复制到配置的扩展目录中,默认是php根目录下的ext文件夹。
2.配置php.ini文件,增加 extension=php_imagick.dll

二、解压ImageMagick.zip并复制bin目录所有的dll文件到php的根目录下。

三、安装gs.exe,以管理员身份打开安装。

四、把ImageMagick解压后的目录下的bin目录加到系统环境变量中。

五、把gs.exe安装目录下的bin目录加到系统环境变量中。

六、php代码

public function prints1()
        {
            $pdf = new Mpdf();
            $pdf->useAdobeCJK = true;
            $pdf->autoScriptToLang = true;
            $pdf->autoLangToFont = true;
            $html = file_get_contents('http://xx/xx/xx/table.html?id='.$_GET['infoid']);
            $pdf_name = md5(time()).'.pdf';
            $pdf->WriteHtml($html);
            $fileName = "D:/test/test.pdf";
            $pdf->Output($fileName);
            $PDF123 = "D://test//601a98420c16b56cb4b214226ae1e40b.pdf";
            $PNG123 = 'test13222222111112.png';
            return $this->pdf2png($fileName,$PNG123);
        }


    public function pdf2png($PDF, $PNG, $w=50, $h=50){
        if(!extension_loaded('imagick')){
            return false;
        }
        if(!file_exists($PDF)){
            return false;
        }
        $im = new \Imagick();
        $im->setResolution($w,$h); //设置分辨率
        $im->setCompressionQuality(15);//设置图片压缩的质量
       try{
            $im->readImage("D:/test/test.pdf");
            $im -> resetIterator();
            $imgs = $im->appendImages(true);
            $imgs->setImageFormat( "png" );
            $img_name = $PNG;
            $imgs->writeImage($img_name);
            $imgs->clear();
            $imgs->destroy();
            $im->clear();
            $im->destroy();
            return $imgs;
       }catch(\Exception $e){
            var_dump($e->getMessage());
       } 
    }

七、调试过程遇到很多坑,如有不明白的私信。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值