全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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将html转为图片  # PHP将HTML转换成文本的实现代码  # 转换为  # 可以用  # 的是  # 类库  # 给大家  # 就可以  # 这一  # 下载地址  # 这一步  # 这是一个  # 不清楚  # 希望能  # 很重要  # 影响到  # 这篇  # 重启  # 它会  # 多出  # 第一页  # 第二步 


相关文章: 如何在景安云服务器上绑定域名并配置虚拟主机?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  ,有什么在线背英语单词效率比较高的网站?  如何用PHP快速搭建CMS系统?  无锡营销型网站制作公司,无锡网选车牌流程?  如何在云主机上快速搭建网站?  宿州网站制作公司兴策,安徽省低保查询网站?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  C#如何在一个XML文件中查找并替换文本内容  制作企业网站建设方案,怎样建设一个公司网站?  建站主机选哪家性价比最高?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  如何通过商城免费建站系统源码自定义网站主题?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  如何在IIS7上新建站点并设置安全权限?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  建站VPS选购需注意哪些关键参数?  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  如何通过可视化优化提升建站效果?  TestNG的testng.xml配置文件怎么写  如何在IIS中新建站点并配置端口与物理路径?  如何用搬瓦工VPS快速搭建个人网站?  广平建站公司哪家专业可靠?如何选择?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  红河网站制作公司,红河事业单位身份证如何上传?  h5网站制作工具有哪些,h5页面制作工具有哪些?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  如何选择适配移动端的WAP自助建站平台?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  c# 在ASP.NET Core中管理和取消后台任务  网站制作话术技巧,网站推广做的好怎么话术?  如何选购建站域名与空间?自助平台全解析  如何通过主机屋免费建站教程十分钟搭建网站?  微信小程序 五星评分(包括半颗星评分)实例代码  学校建站服务器如何选型才能满足性能需求?  b2c电商网站制作流程,b2c水平综合的电商平台?  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  长沙企业网站制作哪家好,长沙水业集团官方网站?  太平洋网站制作公司,网络用语太平洋是什么意思?  济南企业网站制作公司,济南社保单位网上缴费步骤?  网站制作服务平台,有什么网站可以发布本地服务信息?  Android滚轮选择时间控件使用详解  制作证书网站有哪些,全国城建培训中心证书查询官网?  怀化网站制作公司,怀化新生儿上户网上办理流程?  建站主机选虚拟主机还是云服务器更好?  深圳网站制作培训,深圳哪些招聘网站比较好?  ,怎么在广州志愿者网站注册?  如何通过西部建站助手安装IIS服务器? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。