使用PHP把HTML生成PDF文件的几个开源项目介绍


Posted in PHP onNovember 17, 2014

利用PHP编码生成PDF文件是一个非常耗时的工作。在早期,开发者使用PHP并借助FPDF来生成PDF文件。但是如今,已经有很多函数库可以使用了,并且能够从你提供的HTML文件生成PDF文档。这让原先耗时的工作变得非常简单了。

FPDF是很早就被使用的,其特点如下:

FPDF

FPDF是一个允许使用纯PHP生成PDF文档的PHP类,换句话说,没有使用PDFlib 函数库。FPDF中的F代表免费和自由:你可以在任何情况下使用,并且支持自定义,来满足你特定的需求

特点:

1、可以选择单元、页面格式和边距
2、可以管理页眉和页脚
3、自动分页
4、自动换行和文本对齐
5、支持图片(JPEG,PNG,gif)
6、色彩丰富,支持链接

顺便也介绍一些可以直接从HTML生成PDF的函数库。

DomPDF

domPDF将HTML转换为PDF。DomPDF遵循CSS2.1的HTML布局,它是用PHP编写的渲染引擎。DomPDF以样式为主导:它会下载并读取外链样式表,内联样式和HTML元素的style属性值。并且还支持大部分的HTML可见属性。

特点:

1、处理大部分CSS2.1和少许CSS3属性,包括@import, @media & @page 规则
2、支持大部分HTML 4.1的可见属性
3、支持外部样式表,包括本地或者http/ftp链接的(通过fopen-wrappers)
4、支持复杂的表结构,包括行和列的span,separate & collapsed border models和独立的cell样式
5、支持图片(gif, png, bmp & jpeg)
6、不依赖于其他的PDF函数库

TCPDF

TCPDF也可以用于生成PDF文档,并且它是一个开源的PHP类库。
TCPDF项目开始于2002年,现在已经被成千上万的人自由使用。TCPDF is a Free Libre Open Source Software (FLOSS).

特点:

1、基本功能不依赖于其他PDF函数库
2、标准页面格式、支持页面格式自定义、边距自定义和单元计量
3、支持UTF-8编码和文字方向从右到左的语言。
4、支持TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType, Type1 and CID-0等字体
5、支持字体子集,并提供方法发布一些XHTML + CSS code, Javascript and Forms
6、支持图片和图形的转换
7、支持页面压缩(需要php-zlib扩展)
8、自动管理页眉和页脚

更多特点请戳:more

从原文的评论列表中,我也搜罗了相关的站点和开源项目:

wkhtmltopdf(评论说是HTML生成PDF的标准了):
https://code.google.com/p/wkhtmltopdf/
https://github.com/mreiferson/php-wkhtmltox

pdfservices(这个不用解释了,戳开就知道):
http://www.pdfservices.net/

PHP 相关文章推荐
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
Apr 12 PHP
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 PHP
php学习笔记 数组遍历实现代码
Jun 09 PHP
php标签云的实现代码
Oct 10 PHP
php通过字符串调用函数示例
Mar 02 PHP
php获取英文姓名首字母的方法
Jul 13 PHP
又十个超级有用的PHP代码片段
Sep 24 PHP
php邮件发送的两种方式
Apr 28 PHP
thinkPHP框架中执行原生SQL语句的方法
Oct 25 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
Smarty模板变量与调节器实例详解
Jul 20 PHP
php上传后台无法收到数据解决方法
Oct 28 PHP
php检测数组长度函数sizeof与count用法
Nov 17 #PHP
php中filter_input函数用法分析
Nov 15 #PHP
getimagesize获取图片尺寸实例
Nov 15 #PHP
php中rename函数用法分析
Nov 15 #PHP
php格式输出文件var_export函数实例
Nov 15 #PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
Nov 15 #PHP
php函数与传递参数实例分析
Nov 15 #PHP
You might like
浅谈PHP的exec()函数无返回值排查方法(必看)
2017/03/31 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
JavaScript 利用Cookie记录用户登录信息
2009/12/08 Javascript
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
jQuery初学:find()方法及children方法的区别分析
2011/01/31 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
30个最佳jQuery Lightbox效果插件分享
2011/04/11 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
jquery datatable后台封装数据示例代码
2014/08/07 Javascript
Javascript 构造函数详解
2014/10/22 Javascript
js基础知识(公有方法、私有方法、特权方法)
2015/11/06 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
Vue内容分发slot(全面解析)
2017/08/19 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
js数据类型转换与流程控制操作实例分析
2019/12/18 Javascript
node.js爬虫框架node-crawler初体验
2020/10/29 Javascript
深入理解Python异常处理的哲学
2019/02/01 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
2020/03/13 Python
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
护理自我鉴定范文
2013/10/06 职场文书
进修护士自我鉴定
2013/10/14 职场文书
致长跑运动员广播稿
2014/01/31 职场文书
社区母亲节活动方案
2014/03/05 职场文书
社区文化建设方案
2014/05/02 职场文书
学前班评语大全
2014/05/04 职场文书
2014年母亲节演讲稿范文
2014/05/07 职场文书
城管个人总结
2015/02/28 职场文书
同乡会致辞
2015/07/30 职场文书
保姆聘用合同
2015/09/21 职场文书
Python自动化测试PO模型封装过程详解
2021/06/22 Python
MySQL创建管理HASH分区
2022/04/13 MySQL
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers