Home > Backend Development > PHP Problem > How to convert html to image in php

How to convert html to image in php

coldplay.xixi
Release: 2023-03-05 19:48:01
Original
6902 people have browsed it

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');
Copy after login

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;
 
}
Copy after login

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
Copy after login

At this step, pay attention to running

yum list |grep imagick
Copy after login

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
Copy after login

Restart the server

service nginx restart
service php-fpm restart
Copy after login

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;
}
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template