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 相关文章推荐
用PHP实现的生成静态HTML速度快类库
Mar 31 PHP
coreseek 搜索英文的问题详解
Jun 08 PHP
php判断字符串在另一个字符串位置的方法
Feb 27 PHP
php中base64_decode与base64_encode加密解密函数实例
Nov 24 PHP
php两种无限分类方法实例
Apr 21 PHP
PHP之正则表达式捕获组与非捕获组(详解)
Jul 29 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
Aug 18 PHP
php使用高斯算法实现图片的模糊处理功能示例
Nov 11 PHP
php封装的mongodb操作类代码
Aug 06 PHP
php基于session锁防止阻塞请求的方法分析
Aug 07 PHP
PHP设计模式之适配器模式原理与用法分析
Apr 25 PHP
laravel 实现设置时区的简单方法
Oct 10 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的5个入手程序
2006/11/23 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
探讨php中遍历二维数组的几种方法详解
2013/06/08 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
php连接mysql数据库最简单的实现方法
2019/09/24 PHP
js网页中的(运行代码)功能实现思路
2013/02/04 Javascript
Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
2016/03/24 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
Angular2.0实现modal对话框的方法示例
2018/02/18 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
2019/06/19 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
JS事件循环机制event loop宏任务微任务原理解析
2020/08/04 Javascript
浅谈Python的垃圾回收机制
2016/12/17 Python
Python使用Turtle模块绘制五星红旗代码示例
2017/12/11 Python
Python数据拟合与广义线性回归算法学习
2017/12/22 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
python如何删除列为空的行
2020/07/17 Python
详解Python的爬虫框架 Scrapy
2020/08/03 Python
python之语音识别speech模块
2020/09/09 Python
Python获取android设备cpu和内存占用情况
2020/11/15 Python
css3实现超立体3D图片侧翻倾斜效果
2014/04/16 HTML / CSS
CSS3颜色值RGBA与渐变色使用介绍
2020/03/06 HTML / CSS
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
2017/08/18 HTML / CSS
size?瑞典:英国伦敦的球鞋精品店
2018/03/01 全球购物
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
中学生寄语大全
2014/04/03 职场文书
安全月活动总结
2014/05/05 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL