问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php将html转换成图片问题

发布网友 发布时间:2022-04-06 02:55

我来回答

5个回答

懂视网 时间:2022-04-06 07:16

php将html转为图片的方法:首先借助类库mPDF将html转换成pdf,代码为【$pdf_name= md5(time()).'.pdf'】;然后将pdf转换为png,代码为【$imgs->setImageFormat( "png"】。

【相关学习推荐:php编程(视频)】

php将html转为图片的方法:

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

需要借助的类库是mPDF ,imagick

这是一个类库直接下载 上传到服务器即可,里面东西不少,新建一个 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培训栏目!

热心网友 时间:2022-04-06 04:24

参*健康源于心,积极心态像太阳,照到哪里哪里亮;消极心态像病毒,传到哪里哪遭殃。

热心网友 时间:2022-04-06 05:42

http://my.oschina.net/zhangdapeng89/blog/70696

热心网友 时间:2022-04-06 07:17

http://www.blabla.cn/z/php_cn/ref.image.html 这里有你要的答案

热心网友 时间:2022-04-06 09:08

tabooc 的给出了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
神九返回后轨道舱分离去哪里了,是在轨道继续运行,还是不管了。天宫一... 空间站通常由对接舱、气闸舱、轨道舱、生活舱、服务舱、专用设备... 为什么不让神舟七号的轨道舱留在天上让神州八号去追? 洗衣机生产厂家 狗鱼好吃吗? 洪霞的爷爷知识很丰富,你能用哪些成语来形容他 用什么成语可以形容包罗各种各样的想法 什么万千的成语有哪些 重庆哪些考研大学 重庆师范大学考研好不好考 php 如何实现html生成图片 php 如何将html转换成图片 php向MYSQL数据库插入。 PHP页面编码GB2312 数据编码UTF-8 插入特殊符号是?号如何解决 mysql模糊查询like中包含特殊字符在php中要如何处理 PHP 写入Mysql数据库,标记语言出现特殊符号! mysql插入数据的问题 特殊字符 php 如何存储和输出转义字符 MySQL如何写入特殊符号 php mysql_real_escape_string函数用法与实例教程 php操作MySQL中单引号与怎么处理? php插入MYSQL数据库的时候,不能有那些特殊字符,就是我要对这些数据要进行提前处理的 如何自动转义字符串在PHP SQL查询 PHP 访问MYSQL 特殊字符怎么处理 apache访问php文件时只要里面含有index文件就只执行index文件,怎么解决 是不是Apache禁止的直接下载.php文件 php与apache配置出问题了,无法访问。 整合apache和php后访问.php文件提示File not found,求大神拯救 linux apache不能解析php文件,访问后出现的是源代码,什么原因啊? apache访问php网页出现以下情况 如何解决??? mac下终端输入php artisan list报错 急!html提交数据给php,用php生成图片,如何在html中显示? PHP默认输出的是HTML代码,如何转换成效果输出? PHP HTML转图片代码相关资料哪里有? html提交数据给php,jpgraph用php生成图片,如何在当前html中显示? 怎么将HTML格式图片转换为普通图片格式。。。 php 和 html 交互问题。想让php返回一个图片网址,以便html来在输出图片。前端怎样获得php返回信息? php 如何把文字转成图片显示(象验证码那样) php 怎么获取当前函数名称 ? php如何获取某个函数所属的类 phpstrom怎么查看一个类中的方法 PHP-php怎样自动获取被调用的类名 PHP中如何获得当前类的名称,而实例化后获取子类的名称 PHP是否有函数,可以查看当前所有已经定义了的类? php中怎么用ReflectionClass中的方法获取类信息 php ReflectionFunction 如何获取类中的函数 PHP获取类名的一个问题(基类获取子类名) php 怎么做 内部的消息推送呢 有关php 调用ios push的问题 如何用 php代码实现 ios 等多台设备的推送信息功能 php使用JPush极光推送ios android自定义消息