当前位置: 首页 > 编程笔记 >

php将html转为图片的实现方法

闾丘成双
2023-03-14
本文向大家介绍php将html转为图片的实现方法,包括了php将html转为图片的实现方法的使用技巧和注意事项,需要的朋友参考一下

在服务器端解析将编译好的html转换为图片。

由于html一般由客户端浏览器解析,服务器端不能直接解析html代码。所以我们需要借助php类库及扩展完成这一需求。

文件转换过程为 html —> pdf —>png。

需要借助的类库是mPDF ,imagick

pdf 官方下载地址是:http://www.mpdf1.com/mpdf/index.php (推荐下在6.0 虽然大了点)这是一个类库直接下载 上传到服务器即可,里面东西不少,新建一个 html2pdf 的文件夹 引入

include('./html2pdf/mpdf');

整一个函数

/*
名称  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;

}

用这个函数基本就可以解决HTML到pdf的问题,需要注意的是mpdf并不能有效的识别html中所有的css样式,例如position border-radius等。位置可以用margin解决,需要显示圆角图片的话,就需要将图片裁剪为圆形了。

接下来开始将pdf转换为png图片了这一步需要在服务器安装ImageMagick组件 一次运行一下命令

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

到这一步注意运行

yum list |grep imagick

根据查询结果 根据自己服务器版本 选择安装 我的是5.6.3

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

重启服务器

service nginx restart
service php-fpm restart

使用 phpinfo() 或运行 php -m | grep imagick 来查看是否安装成功

然后使用函数将已经生成的pdf转换为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,基本完成简单页面的图片化了。图片大小为1M左右。小了不清楚。

以上这篇php将html转为图片的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍php实现将上传word文件转为html的方法,包括了php实现将上传word文件转为html的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现将上传word文件转为html的方法。分享给大家供大家参考。具体实现方法如下: 上传页面: 接收页面: 希望本文所述对大家的php程序设计有所帮助。

  • 本文向大家介绍php实现图片转换成ASCII码的方法,包括了php实现图片转换成ASCII码的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现图片转换成ASCII码的方法。分享给大家供大家参考。具体如下: php图片转换成ASCII码,转换后可以直接通过字符串显示图片 希望本文所述对大家的php程序设计有所帮助。

  • 本文向大家介绍利用PHP将图片转换成base64编码的实现方法,包括了利用PHP将图片转换成base64编码的实现方法的使用技巧和注意事项,需要的朋友参考一下 先来说一下为什么我们要对图片base64编码 base64是当前网络上最为常见的传输8Bit字节代码的编码方式其中之一。base64主要不是加密,它主要的用途是把某些二进制数转成普通字符用于网络传输。由于这些二进制字符在传输协议中属于控制字

  • 本文向大家介绍php实现图片缩略图的方法,包括了php实现图片缩略图的方法的使用技巧和注意事项,需要的朋友参考一下 本段代码实现功能有这些: 支持jpg,jpeg,gif,png,bmp图片格式,支持按原图片的比例进行缩放,可以选择在图片缩放的过程中是否需要对图片进行裁切,加入了图片质量控制,可以实现缩略图片质量最高化。 完整类的代码如下: 使用方法很简单代码如下: 以上代码是小编给大家分享的ph

  • 本文向大家介绍java中pdf转图片的实现方法,包括了java中pdf转图片的实现方法的使用技巧和注意事项,需要的朋友参考一下 JAVA中实现pdf转图片可以通过第三方提供的架包,这里介绍几种常用的,可以根据自身需求选择使用。 一、icepdf。有收费版和开源版,几种方法里最推荐的。转换的效果比较好,能识别我手头文件中的中文,就是转换后可能字体的关系部分字间距有点宽。因为,字体支持是要收费的,所以

  • 本文向大家介绍将HTML格式的String转化为HTMLElement的实现方法,包括了将HTML格式的String转化为HTMLElement的实现方法的使用技巧和注意事项,需要的朋友参考一下 代码如下: 1、若将script放到head元素中,则加载脚本时,尚未加载div元素,此时会出现“document.getElementById(...) 为空或者不是对象”。 2、以上代码在chrome