PHP实现HTML生成PDF文件的方法


Posted in PHP onNovember 07, 2014

本文实例讲述了在linux中利用HTML2FPDF与wkhtmltoimage把网页html直接生成pdf格式的文件方法,分享给大家供大家参考。具体实现方法如下:

找到一款在FPDF和HTML2FPDF源码基础上开发的一套开源程序,作者很给力。基本解决了中文(以及日语、韩语及东南亚和全球语言)乱码的问题,在Windows/Linux开发环境下测试可用,不需要安装别的组件支持,是没有VPS和独立服务器的网站开发者的福音。

不多说,源码名称是MPDF,官方地址是:http://www.mpdf1.com/ 已经更新到5.6版。
到官网下载,解压到网站目录下,使用。

<?php

include('mpdf.php');

$mpdf=new mPDF('UTF-8','A4','','',15,15,44,15);

$mpdf->useAdobeCJK = true; 

$mpdf->SetAutoFont(AUTOFONT_ALL);

$mpdf->SetDisplayMode('fullpage');

//$mpdf->watermark_font = 'GB'; 

//$mpdf->SetWatermarkText('中国水印',0.1);

$url = 'http://www.你的域名.com/';

$strContent = file_get_contents($url); 

//print_r($strContent);die;

$mpdf->showWatermarkText = true;

$mpdf->SetAutoFont();

//$mpdf->SetHTMLHeader( '头部' );

//$mpdf->SetHTMLFooter( '底部' );

$mpdf->WriteHTML($strContent);

$mpdf->Output('ss.pdf');

//$mpdf->Output('tmp.pdf',true);

//$mpdf->Output('tmp.pdf','d');

//$mpdf->Output();

exit;

?>

PASS:需要注意的是,PHP文件要是UTF-8。不用心情天空贴出的代码,自己写时出现方格乱码时,可以在config.php文件里的$this->useAdobeCJK = false;修改成true或者必须标注:$mpdf->useAdobeCJK = true; 官方有文档,可以自己摸索。

这个不完美方法,MPDF只能解析相对简单的css(不能解析js和css中ul li等标签)。现在既然使用了wkhtmltoimage扩展,也就不在乎wkhtmltopdf的使用了。
同样,wkhtmltoimage 0.11会出现错误,需要下载0.10.0_rc2版。

32位:

wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.10.0_rc2-static-i386.tar.bz2

tar jxf wkhtmltopdf-0.10.0_rc2-static-i386.tar.bz2

cp wkhtmltoimage-i386 /usr/local/bin/wkhtmltopdf

 
64位
wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.10.0_rc2-static-amd64.tar.bz2

mv wkhtmltoimage-0.10.0_rc2-static-amd64.tar.bz2 wkhtmltoimage-0.10.0_rc2-static-amd64.tar

tar -xvf wkhtmltopdf-0.10.0_rc2-static-amd64.tar

mv wkhtmltoimage-amd64 /usr/bin/wkhtmltopdf测试 wkhtmltopdf http://www.你的域名.com/ 你的域名.pdfphp shell_exec() 执行shell_exec('/usr/local/bin/wkhtmltopdf http://www.你的域名.com/ /usr/local/wwwroot/你的域名.com/你的域名.pdf');

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
MySQL授权问题总结
May 06 PHP
怎样去阅读一份php源代码
Aug 21 PHP
PHP clearstatcache()函数详解
Mar 02 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
Jul 19 PHP
探讨GDFONTPATH能否被winxp下的php支持
Jun 21 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
Jan 07 PHP
PHP使用CURL模拟登录的方法
Jul 08 PHP
Referer原理与图片防盗链实现方法详解
Jul 03 PHP
php解决crontab定时任务不能写入文件问题的方法分析
Sep 16 PHP
php和js实现根据子网掩码和ip计算子网功能示例
Nov 09 PHP
Thinkphp 框架扩展之应用模式实现方法分析
Apr 27 PHP
PHP面向对象精要总结
Nov 07 #PHP
PHP使用feof()函数读文件的方法
Nov 07 #PHP
php几个预定义变量$_SERVER用法小结
Nov 07 #PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
Nov 06 #PHP
php中常见的sql攻击正则表达式汇总
Nov 06 #PHP
php中实现记住密码下次自动登录的例子
Nov 06 #PHP
php网站被挂木马后的修复方法总结
Nov 06 #PHP
You might like
关于我转生变成史莱姆这档事:第二季PV上线,萌王2021年回归
2020/05/06 日漫
PHP个人网站架设连环讲(三)
2006/10/09 PHP
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
php中fgetcsv()函数用法实例
2014/11/28 PHP
如何正确配置Nginx + PHP
2016/07/15 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
js中各种类型的变量在if条件中是true还是false
2014/07/16 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
JavaScript解析机制与闭包原理实例详解
2019/03/08 Javascript
typescript编写微信小程序创建项目的方法
2021/01/29 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
Python环境搭建之OpenCV的步骤方法
2017/10/20 Python
Python中enumerate函数代码解析
2017/10/31 Python
python编写弹球游戏的实现代码
2018/03/12 Python
Django 返回json数据的实现示例
2020/03/05 Python
keras load model时出现Missing Layer错误的解决方式
2020/06/11 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
酒店总经理欢迎词
2014/01/15 职场文书
青春奉献演讲稿
2014/05/08 职场文书
公司承诺书格式
2014/05/21 职场文书
超市促销活动总结
2014/07/01 职场文书
商场父亲节活动方案
2014/08/27 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
养成教育工作总结
2015/08/13 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书
小学四年级作文之写景
2019/08/23 职场文书
MySQL中distinct与group by之间的性能进行比较
2021/05/26 MySQL
关于JavaScript轮播图的实现
2021/11/20 Javascript
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫