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转为图片的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

时间: 2024-09-25 02:35:47

php将html转为图片的实现方法的相关文章

C#实现 word、pdf、ppt 转为图片

      office word文档.pdf文档.powerpoint幻灯片是非常常用的文档类型,在现实中经常有需求需要将它们转换成图片 -- 即将word.pdf.ppt文档的每一页转换成一张对应的图片,就像先把这些文档打印出来,然后再扫描成图片一样.所以,类似这种将word.pdf.ppt转换为图片的工具,一般又称之为"电子扫描器",很高端的名字! 一.那些场合需要将word.pdf.ppt转换为图片?      在我了解的情况中,通常有如下三种场景,有将word.pdf.ppt

在金山wps工具栏加入常用图片的简单方法

  在今天的金山wps使用教程,我们将跟大家分享的是在wps工具栏上加入常用图片的教程.我们在使用金山wps编辑文档的过程中,有一些常用图片需要在每次使用的时候都进行插入操作,非常繁琐,如果可以把常用图片加入到wps工具栏,就可以方便我们随时调用常用图片了.下面,小编就跟大家分享一下在金山wps工具栏加入常用图片的简单方法! 添加命令 1.添加命令 打开WPS文字2007,右击工具栏选择"自定义"打开自定义窗口,在左侧"命令栏"列表中选择"常用"

美女图片站推广方法

推广 现在做图片网站的朋友比较多,这类网站容易有流量,而且可以在短时间内达到一个高峰. 下面我们来谈谈美女图片站推广方法 (1)常用方法:SEO优化或者说是作弊,友情连接,病毒等 (2)登陆专业的娱乐导航:www.diaozi.com  www.vv11.com等 (3)百度的美女吧,是个好地方,流量大,但发不了广告,会封ip和删贴.你去贴图,图上打你的域名是可以的,但得累死你.但你可以用美女回复一次图片变一次的原理,让大家把你的贴顶起来,一个火爆的贴回复过百,流量过k,而你不过是发了一个贴,效

Android中3种图片压缩处理方法

  这篇文章主要介绍了Android中3种图片压缩处理方法,本文讲解了质量压缩方法.获得缩略图.图片缩放三种方法并分别给出示例代码,需要的朋友可以参考下 Android中图片的存在形式: 1:文件形式:二进制形式存在与硬盘中. 2:流的形式:二进制形式存在与内存中. 3:Bitmap的形式 三种形式的区别: 文件形式和流的形式:对图片体积大小并没有影响.也就是说,如果你手机SD卡上的图片通过流的形式读到内存中,在内存中的大小也是原图的大小. 注意:不是Bitmap的形式. Bitmap的形式:图

Android实现自定义带文字和图片Button的方法

  本文实例讲述了Android实现自定义带文字和图片Button的方法.分享给大家供大家参考.具体分析如下: 在Android开发中经常会需要用到带文字和图片的button,下面来讲解一下常用的实现办法. 一.用系统自带的Button实现 最简单的一种办法就是利用系统自带的Button来实现,这种方式代码量最小.在Button的属性中有一个是drawableLeft,这个属性可以把图片设置在文字的左边,但是这种方式必须让icon的背景色是透明的,如果icon的背景色不是透明的话,会导致点击按钮

php通过获取头信息判断图片类型的方法

本文实例讲述了php通过获取头信息判断图片类型的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 $filename = '617.gif' ; function pictype ( $file ) { /*$png_header = "/x89/x50/x4e/x47/x0d/x0a/x1a/x0a"; $jpg_header = "/xff/xd

PPT制作表格图片墙的方法

PPT制作表格图片墙的方法   1.新建幻灯片,插入6×3的表格,设置单元格边长为4cm×4cm. 2.调整表格布局,将第二行第3.第4单元格合并为一个,第5单元格拆分为两个. 3.将上一步拆分出来的两个单元格中的右侧单元格与第二行最右单元格合并,然后将右下角单元格拆分为2列3行. 4.全选表格,将边框设置为"无框线". 然后选中左侧4列表格,设置绘图边框为6磅.白色,然后点击"边框",选择"内部框线".

WPS文字自由裁剪图片的简单方法

  WPS文字自由裁剪图片的简单方法.本文讲述了用WPS文字单手闭眼来随心所欲来剪裁图片,先来几个例子: 先看个五角型的: 这个是浮云型的: 这个是八角型的: 第一步:在WPS文字文档中,选择插入--形状,选择一个五角星,然后按住SHIFT键加鼠标左键,在文档中画一个五角星.

压缩PPT中图片大小的方法

  压缩PPT中图片大小的方法          1.打开要压缩的PPT后,单击"文件"按钮,在跳转到的面板中选择"另存为",然后双击其右侧的"计算机"选项. 2.此时会弹出"另存为"对话框,选择"工具"下的"压缩图片",然后在弹出的"压缩图片"对话框中设置压缩选项以及目标输出,完成之后确定即可. 3.返回到"另存为"对话框中,我们选择要保存文件的