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 相关文章推荐
PHPShop存在多个安全漏洞
Oct 09 PHP
PHP 获取文件路径(灵活应用__FILE__)
Feb 15 PHP
str_replace只替换一次字符串的方法
Apr 09 PHP
PHP header()函数使用详细(301、404等错误设置)
Apr 17 PHP
深入分析php之面向对象
May 15 PHP
php数据库备份还原类分享
Mar 20 PHP
浅谈php扩展imagick
Jun 02 PHP
php常用hash加密函数
Nov 22 PHP
php实现读取手机客户端浏览器的类
Jan 09 PHP
PHP常见的6个错误提示及解决方法
Jul 07 PHP
Centos7安装swoole扩展操作示例
Mar 26 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
Apr 20 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
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
PHP面向对象程序设计之多态性的应用示例
2018/12/19 PHP
javaScript Array(数组)相关方法简述
2009/07/25 Javascript
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
jquery 查找新建元素代码
2010/07/06 Javascript
DOM_window对象属性之--clipboardData对象操作代码
2011/02/03 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
js获取checkbox值的方法
2015/01/28 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
浅谈JavaScript异常处理语句
2015/06/26 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
使用JSON作为函数的参数的优缺点
2016/10/27 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
2016/12/28 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
解决Layui数据表格中checkbox位置不居中的方法
2018/08/15 Javascript
Vue源码解析之Template转化为AST的实现方法
2018/12/14 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
2019/11/12 Javascript
javascript递归函数定义和用法示例分析
2020/07/22 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
如何使用JS console.log()技巧提高工作效率
2020/10/14 Javascript
python实现文件名批量替换和内容替换
2014/03/20 Python
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
Python学习笔记之视频人脸检测识别实例教程
2019/03/06 Python
Pytorch1.5.1版本安装的方法步骤
2020/12/31 Python
师范毕业生自荐信
2013/10/17 职场文书
美术指导求职信
2014/03/17 职场文书
青年志愿者服务活动总结
2015/05/06 职场文书
校运会加油稿大全
2015/07/22 职场文书
Python快速优雅的批量修改Word文档样式
2021/05/20 Python
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL