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 相关文章推荐
基于文本的搜索
Oct 09 PHP
PHP的中问验证码
Nov 25 PHP
php INI配置文件的解析实现分析
Jan 04 PHP
PHP求小于1000的所有水仙花数的代码
Jan 10 PHP
使用PHP实现蜘蛛访问日志统计
Jul 05 PHP
table标签的结构与合并单元格的实现方法
Jul 24 PHP
简单谈谈php中ob_flush和flush的区别
Nov 27 PHP
php递归调用删除数组空值元素的方法
Apr 28 PHP
WordPress开发中短代码的实现及相关函数使用技巧
Jan 05 PHP
Yii全局函数用法示例
Jan 22 PHP
在laravel中使用Symfony的Crawler组件分析HTML
Jun 19 PHP
laravel框架学习笔记之组件化开发实现方法
Feb 01 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
PHP中函数rand和mt_rand的区别比较
2012/12/26 PHP
解析zend Framework如何自动加载类
2013/06/28 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
php定期拉取数据对比方法实例
2019/09/22 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
基于jquery的图片的切换(以数字的形式)
2011/02/14 Javascript
jquery获取table中的某行全部td的内容方法
2013/03/08 Javascript
jQuery前端框架easyui使用Dialog时bug处理
2014/12/05 Javascript
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
2019/04/17 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
2020/03/13 Python
Under Armour安德玛德国官网:美国高端运动科技品牌
2019/03/09 全球购物
C语言笔试集
2012/07/24 面试题
施工资料员岗位职责
2014/01/06 职场文书
幼儿园教学管理制度
2014/02/04 职场文书
我爱读书演讲稿
2014/05/07 职场文书
效能监察建议书
2014/05/19 职场文书
小学课外活动总结
2014/07/09 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
学生自我评语
2015/01/04 职场文书
新员工入职欢迎词
2015/01/23 职场文书
个人简历求职信范文
2015/03/20 职场文书
办公室禁烟通知
2015/04/23 职场文书
实习指导老师意见
2015/06/04 职场文书
十二生肖观后感
2015/06/12 职场文书
工作表现证明
2015/06/15 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
《雪地里的小画家》教学反思
2016/02/16 职场文书
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis