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 七大优势分析
Jun 23 PHP
关于Appserv无法打开localhost问题的解决方法
Oct 16 PHP
php模拟socket一次连接,多次发送数据的实现代码
Jul 26 PHP
ThinkPHP惯例配置文件详解
Jul 14 PHP
php出现web系统多域名登录失败的解决方法
Sep 30 PHP
php判断表是否存在的方法
Jun 18 PHP
php目录拷贝实现方法
Jul 10 PHP
php+html5基于websocket实现聊天室的方法
Jul 17 PHP
php语言的7种基本的排序方法
Dec 28 PHP
PHP给前端返回一个JSON对象的实例讲解
May 31 PHP
PHP 实现 JSON 数据的编码和解码操作详解
Apr 22 PHP
PHP实现限制域名访问的实现代码(本地验证)
Sep 13 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开发模式(简写版)
2007/03/15 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
ThinkPHP框架实现数据增删改
2017/05/07 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
2010/06/18 Javascript
基于jQuery的星级评分插件
2011/08/12 Javascript
addEventListener 的用法示例介绍
2014/05/07 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
jQuery遮罩层效果实例分析
2016/01/14 Javascript
Node.js实现数据推送
2016/04/14 Javascript
深入理解JavaScript中的预解析
2017/01/04 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
jQuery实现用户信息表格的添加和删除功能
2017/09/12 jQuery
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
利用Blob进行文件上传的完整步骤
2018/08/02 Javascript
详解webpack loader和plugin编写
2018/10/12 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
JS实现百度搜索框关键字推荐
2020/02/17 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
Python面向对象之多态原理与用法案例分析
2019/12/30 Python
详解python中各种文件打开模式
2020/01/19 Python
python 写函数在一定条件下需要调用自身时的写法说明
2020/06/01 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
Python Selenium异常处理的实例分析
2021/02/28 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
实习生求职自荐信
2014/02/07 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python