介绍
这篇文章将为大家详细讲解有关利用php怎么将html页面转换成图片,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
在服务器端解析将编译好的html转换为图片。
由于html一般由客户端浏览器解析,服务器端不能直接解析html代码,所以我们需要借助php类库及扩展完成这一需求。
文件转换过程为html→pdf→png。
需要借助的类库是mPDF, imagick
新建一个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;); *,*/function html2pdf (html、美元,美元的路径,w=414美元,,h=736美元){ ,//设置中文字体(很重要,它会影响到第二步中,图片生成) mpdf美元=new mpdf (& # 39; utf - 8 # 39;); 时间=美元mpdf→autoScriptToLang 真实; 时间=美元mpdf→autoLangToFont 真实;//设置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美元); return pdf_name美元; }
用这个函数基本就可以解决HTML到pdf的问题,需要注意的是mpdf并不能有效的识别HTML中所有的css样式,例如位置圆角边框等。位置可以用保证金解决,需要显示圆角图片的话,就需要将图片裁剪为圆形了。
接下来开始将pdf转换为png图片了这一步需要在服务器<强>安装ImageMagick组件一次运行一下命令强>
yum install -y ImageMagick yum install  -y ImageMagick-devel yum install  -y gcc yum install  -y php-pear yum install  -y 内容 yum install  -y ghostscript-devel。x86_64
到这一步注意运行
yum list | grep imagick
根据查询结果根据自己服务器版本选择安装我的是5.6.3
yum install -y php56w-pecl-imagick.x86_64 yum install  -y php56w-pecl-imagick-devel。x86_64
重启服务器
service nginx 重新启动 service 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;); *,*/function pdf2png (PDF,美元,PNG,美元,w=50美元,h=50美元){ 如果(! extension_loaded (& # 39; imagick& # 39;)) { return 假; } 如果(! file_exists (PDF)) { return 假; } $我=,new Imagick (); im→美元setResolution (w h美元);,//设置分辨率 im→美元setCompressionQuality(15);//设置图片压缩的质量 im→美元readImage (PDF); 美元我→,resetIterator (); 美元$ imgs =, im→appendImages(真正的); 一个美元→setImageFormat (,“png",); $ img_name =, PNG美元; 一个美元→writeImage ($ img_name); 一个美元→clear (); 一个美元→破坏(); im→美元clear (); 美元我→破坏(); return img_name美元; }
关于利用php怎么将html页面转换成图片就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。