This article mainly introduces the method of converting html to images in php. Interested friends can refer to it. I hope it will be helpful to everyone.
Parse and convert the compiled html into images on the server side.
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 (recommended in 6.0 Although it is a bit big) This is a class library that can be downloaded and uploaded directly to the server. There are many things in it. Create a new html2pdf folder and introduce it
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; }
Using this function can basically 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, please run
yum list |grep imagick
yum install -y php56w-pecl-imagick.x86_64 yum install -y php56w-pecl-imagick-devel.x86_64
service nginx restart service php-fpm restart
/* 名称 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; }
PHPConvert images to share the source code in ico format
PHPConvert imageFor ico format source code
PHPConvert imageFormat to JPG and automatically scale to the specified size_PHP tutorial
The above is the detailed content of PHP method to convert html into images. For more information, please follow other related articles on the PHP Chinese website!