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左右。小了不清楚。

时间: 2024-12-18 01:12:01

php将html转为图片的相关文章

使用Aspose组件将WORD、PDF、PPT转为图片

using System; using System.Collections.Generic; using System.Text; using OMCS.Engine.WhiteBoard; using ESBasic; using System.Drawing.Imaging; using System.IO; using System.Drawing; using Schematrix; namespace OMCS.Demos.WhiteBoardTest { /**//* * * 将p

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

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

pdf怎么转换成jpg,使用工具将pdf转为图片

PDF文件在方方面面都是我们工作中的好帮手,可是在PDF文件有编辑权限,所以在使用的时候也是需要大家将PDF转换成其他格式.这里我们就网友议论较多的“pdf怎么转换成jpg”这个问题来给大家说一说. pdf转换成jpg,我们知道一个技巧性的解决方法,比如用Acrobat Reader .捷速PDF编辑器软件之类的PDF文件阅读器打开PDF文件,利用拍快照或是截图的方法将PDF文件一页页的变成JPG图片,但是这种方法已经非常老套了,而且使用起来也非常的麻烦.下面看一下使用pdf工具是如何将pdf转

用VBS将PPT转为图片

'使用方法:把ppt文件拖放到该文件上. '机器上要安装Powerpoint程序 On Error Resume Next Set ArgObj = WScript.Arguments pptfilepath = ArgObj(0) imgType = InputBox("输入导出文件的格式,可以是jpg,png,bmp,gif","输入导出文件的格式","png") If imgType = "" Or (LCase(img

javascript将html转为图片保存。

js将html转为图片主要是通过html2canvas这个插件去操作的.具体实现如下: html部分: <!--index.html--> <div id="container"> this is a test page!!! <i></i> <button onclick="download()">download</button> </div> <script src=&q

Java之Base64转为图片

########MD5编码############## public static String genMd5ByBytes(byte[] bytes) throws Exception { String value = null; try { MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update(bytes); byte b[] = md5.digest(); int i; StringBuffer buf

微信将用户信息转为一张图片(将html转为图片)

注:效果如下图 效果图1                                                                           效果图2 原理1:将用户的个人信息写在图片上 项目的解决方案如下请看标记的地方: 代码展示如下: 先引用  图片和文件处理类 using System.Drawing;using System.IO; 代码如下: Random rd = new Random(); int a = rd.Next(1, 4); ///图片的路

Windows聚焦转为图片

1.windows聚焦图片目录路径: C:\Users\Er\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets 2.建立bat 文件 内容: ren *.* *.jpg 原文地址:https://www.cnblogs.com/BlogOfEr/p/10048193.html

Java 将Excel转为图片、html、XPS、XML、CSV

通过文档格式转换,可满足不同办公场合对文档操作的需求.本文将介绍转换Excel文档为其他常见文档格式的方法.通过文中的方法,可支持将Excel转换为包括PDF.图片.html.XPS.XML.CSV.PCL.ODS.PostScript.以及Office Excel不同版本,如,version97-2003,version2007,version2010,version2013,version2016等在内的不同文档格式.本文以转换其中的几种文档格式为例介绍具体转换方法. 使用工具:Free S