Home > Article > Backend Development > How to convert php html into pictures
php method to convert html into images: 1. Create a new folder of html2pdf; 2. Enter "include('./html2pdf/mpdf');"; 3. Use "function pdf2png(){ ...}" method to convert html into images.
#The operating environment of this article: Windows 7 system, PHP version 5.6, DELL G3 computer.
php How to convert html into pictures?
php implementation method of converting html into images
Parses on the server side to convert the compiled html into images.
Since html is generally parsed by the client browser, the server cannot parse html code directly. So we need to use php class libraries and extensions to complete this requirement.
The file conversion process is html —> pdf —>png.
The class library you need to use is mPDF, imagick
pdf. The official download address is: http://www.mpdf1.com/mpdf/index.php (it is recommended to use 6.0 although it is too big) Click) This is a class library that can be directly downloaded and uploaded to the server. There are many 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('<pagebreak sheet-size="'.$w.'mm '.$h.'mm" />'); //设置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; }
You can basically use this function To solve the problem of HTML to PDF, it should be noted that mpdf cannot effectively identify all CSS styles in HTML, such as position border-radius, etc. The position can be solved using margin. If you need to display a rounded image, you need to crop the image into a circle.
The next step is to convert 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 Choose to install mine according to your server version 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
Use phpinfo() or run php -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 image size is about 1M. It's too small to be clear.
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of How to convert php html into pictures. For more information, please follow other related articles on the PHP Chinese website!