小编给大家分享一下php实现html转图片的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
php的html转图片的实现方法:首先下载mPDF和imagick类库,然后创建一个“html2pdf”方法,并设置pdf的尺寸和显示方式,接着通过命令如“yum安装- y ImageMagick”将pdf转换为png图片即可。
引用>
在服务器端解析将编译好的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转图片的方法