php实现html转图片的方法

  介绍

小编给大家分享一下php实现html转图片的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

php的html转图片的实现方法:首先下载mPDF和imagick类库,然后创建一个“html2pdf”方法,并设置pdf的尺寸和显示方式,接着通过命令如“yum安装- y ImageMagick”将pdf转换为png图片即可。

 php实现html转图片的方法

在服务器端解析将编译好的html转换为图片。

由于html一般由客户端浏览器解析,服务器端不能直接解析html代码,所以我们需要借助php类库及扩展完成这一需求。

文件转换过程为html→pdf→png。

需要借助的类库是mPDF, imagick

pdf官方下载地址是:http://www.mpdf1.com/mpdf/index.php(推荐下在6.0虽然大了点)这是一个类库直接下载上传到服务器即可,里面东西不少,新建一个html2pdf的文件夹引入

包括(& # 39;。/html2pdf mpdf& # 39;);

整一个函数

/*   名称html转换为pdf图片   功能将html页面转换为pdf图片(部分css样式无法识别)   参数数量2个   1.必须html代码可以用file_get_contenth获取   2.必须生成pdf存放位置路径   3.非必须pdf宽   4.非必须pdf高   返回值图片名称   实例代码(html、美元& # 39;img/1. pdf # 39;);   * */函数html2pdf (html、路径,美元w=414美元,h=736美元){//设置中文字体(很重要它会影响到第二步中图片生成)   mpdf美元=new mpdf (& # 39; utf - 8 # 39;);   mpdf→美元autoScriptToLang=true;   mpdf→美元autoLangToFont=true;//设置pdf的尺寸   mpdf→美元WriteHTML (& # 39; & lt; pagebreak图纸大?? # 39;w美元。强生# 39;mm & # 39;。h强生# 39;美元mm"/祝辞& # 39;);//设置pdf显示方式   mpdf→美元SetDisplayMode (& # 39; fullpage& # 39;);//删除pdf第一页(由于设置pdf尺寸导致多出了一页)   mpdf→美元DeletePages (1,1);      mpdf→美元WriteHTML (html);      $ pdf_name=md5(时间())强生# 39;. pdf # 39;;      mpdf→美元输出(路径。pdf_name美元);      返回pdf_name美元;      }

用这个函数基本就可以解决HTML到pdf的问题,需要注意的是mpdf并不能有效的识别HTML中所有的css样式,例如位置圆角边框等。位置可以用保证金解决,需要显示圆角图片的话,就需要将图片裁剪为圆形了。

接下来开始将pdf转换为png图片了这一步需要在服务器安装ImageMagick组件一次运行一下命令

yum安装- y ImageMagick   yum安装- y ImageMagick-devel   yum安装gcc - y   yum安装- y php-pear   yum安装- y内容   yum安装- y ghostscript-devel。x86_64

到这一步注意运行

百胜列表| grep imagick

根据查询结果根据自己服务器版本选择安装我的是5.6.3

yum安装- y php56w-pecl-imagick.x86_64   yum安装- y php56w-pecl-imagick-devel。x86_64

重启服务器

nginx重启服务   服务php-fpm重启

使用phpinfo()或运行php - m | grep imagick来查看是否安装成功

然后使用函数将已经生成的pdf转换为png就可以了

/*   名称pdf转换为png图片   功能将pdf图片转换为png图片   参数数量2个   1.必须html代码可以用file_get_contenth获取   2.必须生成pdf存放位置路径      实例代码(html、美元& # 39;img/1. pdf # 39;);   * */函数pdf2png (PDF、PNG、美元w=50美元,h=50美元){   如果(! extension_loaded (& # 39; imagick& # 39;)) {   返回错误;   }   如果(! file_exists (PDF)) {   返回错误;   }      我美元=new Imagick ();      im→美元setResolution (w h美元);//设置分辨率   im→美元setCompressionQuality(15);//设置图片压缩的质量      im→美元readImage (PDF);   im→美元resetIterator ();   一美元=$ im→appendImages(真正的);   一个美元→setImageFormat (“png");   img_name=PNG美元;   一个美元→writeImage ($ img_name);   一个美元→clear ();   一个美元→破坏();   im→美元clear ();   美元我→破坏();      返回img_name美元;   }

好的,基本完成简单页面的图片化了。图片大小为1 m左右。小了不清楚。

php实现html转图片的方法