Home  >  Article  >  Backend Development  >  How to convert html to image in php

How to convert html to image in php

coldplay.xixi
coldplay.xixiOriginal
2020-09-07 11:21:136761browse

php method to convert html to pictures: first use the class library mPDF to convert html to pdf, the code is [$pdf_name= md5(time()).'.pdf']; then convert pdf to png, the code is [$imgs->setImageFormat( "png"].

How to convert html to image in php

[Related learning recommendations: php Programming(Video)】

php method to convert html to images:

The file conversion process is html —> pdf —>png

The class library that needs to be used is mPDF, imagick

This is a class library that can be directly downloaded and uploaded to the server That’s it. There are a lot of things in it. Create a new html2pdf folder and introduce

include('./html2pdf/mpdf');

A whole function

/*
名称  html转换为pdf图片
功能  将html页面转换为pdf图片(部分css样式无法识别)
参数数量 2个
1.必须 html代码 可以用file_get_contenth获取
2.必须 生成pdf存放位置路径
3.非必须 pdf宽
4.非必须 pdf高
返回值 图片名称
实例  code($html,'img/1.pdf');
 * */
function html2pdf($html, $PATH, $w=414 ,$h=736){
 //设置中文字体(很重要 它会影响到第二步中 图片生成)
$mpdf=new mPDF('utf-8');
$mpdf->autoScriptToLang = true;
$mpdf->autoLangToFont = true;
//设置pdf的尺寸
$mpdf->WriteHTML(&#39;<pagebreak sheet-size="&#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(time()).&#39;.pdf&#39;;
 
$mpdf->Output($PATH.$pdf_name);
 
return $pdf_name;
 
}

Using this function can basically solve the problem of HTML to pdf. What needs to be noted is mpdf It cannot effectively identify all css styles in html,

such as position border-radius, etc. The position can be solved with margin. If you need to display a rounded image, you need to crop the image into a circle.

Next, start converting pdf to png images. This step requires installing the ImageMagick component on the server and running the command once.

yum install -y ImageMagick
yum install -y ImageMagick-devel
yum install -y gcc
yum install -y php-pear
yum install -y ghostscript
yum install -y ghostscript-devel.x86_64

At this step, pay attention to running

yum list |grep imagick

According to the query results, according to your own The server version I choose to install is 5.6.3

yum install -y php56w-pecl-imagick.x86_64
yum install -y php56w-pecl-imagick-devel.x86_64

Restart the server

service nginx restart
service php-fpm restart

Usephpinfo() or runphp -m | grep imagick To check whether the installation is successful

Then use the function to convert the generated pdf to png

*/
名称  pdf转换为png图片
功能  将pdf图片转换为png图片
参数数量 2个
1.必须 html代码 可以用file_get_contenth获取
2.必须 生成pdf存放位置路径
 
实例  code($html,&#39;img/1.pdf&#39;);
 * */
function pdf2png($PDF, $PNG, $w=50, $h=50){
if(!extension_loaded(&#39;imagick&#39;)){
return false;
}
if(!file_exists($PDF)){
return false;
}
 
$im = new Imagick();
 
$im->setResolution($w,$h); //设置分辨率
$im->setCompressionQuality(15);//设置图片压缩的质量
 
$im->readImage($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 $img_name;
}

ok. The picture of the simple page is basically completed. The picture size is about 1M. Small Not sure.

If you want to learn more about programming, please pay attention to the php training column!

The above is the detailed content of How to convert html to image in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn