Home>Article>Backend Development> How to convert html to image in php
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"].
[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(''); //设置pdf显示方式 $mpdf->SetDisplayMode('fullpage'); //删除pdf第一页(由于设置pdf尺寸导致多出了一页) $mpdf->DeletePages(1,1); $mpdf->WriteHTML($html); $pdf_name = md5(time()).'.pdf'; $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,'img/1.pdf'); * */ function pdf2png($PDF, $PNG, $w=50, $h=50){ if(!extension_loaded('imagick')){ 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 thephp trainingcolumn!
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!