使用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 相关文章推荐
PHP4实际应用经验篇(3)
Oct 09 PHP
php中文字母数字验证码实现代码
Apr 25 PHP
php地址引用(php地址引用的效率问题)
Mar 23 PHP
如何在php中正确的使用json
Aug 06 PHP
限制ckeditor上传图片文件大小的方法
Nov 15 PHP
php+mysql实现数据库随机重排实例
Oct 17 PHP
php实现有趣的人品测试程序实例
Jun 08 PHP
CodeIgniter 完美解决URL含有中文字符串
May 13 PHP
php查找字符串中第一个非0的位置截取
Feb 27 PHP
使用Zttp简化Guzzle 调用
Jul 02 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
Dec 13 PHP
基于PHP实现用户登录注册功能的详细教程
Aug 04 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
点评山进PR-D3L三波段收音机
2021/03/02 无线电
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
php管理nginx虚拟主机shell脚本实例
2014/11/19 PHP
浅谈php冒泡排序
2014/12/30 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
2016/10/28 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
2018/12/21 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
2007/08/19 Javascript
IE8 原生JSON支持
2009/04/13 Javascript
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
js中substring和substr的详细介绍与用法
2013/08/29 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
JavaScript代码实现图片循环滚动效果
2020/03/19 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
JS查找英文文章中出现频率最高的单词
2017/03/20 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
jQuery实现可拖动进度条实例代码
2017/06/21 jQuery
微信小程序使用setData修改数组中单个对象的方法分析
2018/12/30 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
一起深入理解js中的事件对象
2021/02/06 Javascript
Python爬虫工程师面试问题总结
2018/03/22 Python
django 多数据库配置教程
2018/05/30 Python
Centos下实现安装Python3.6和Python2共存
2018/08/15 Python
python单例模式获取IP代理的方法详解
2018/09/13 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
Python实现随机创建电话号码的方法示例
2018/12/07 Python
Pandas删除数据的几种情况(小结)
2019/06/21 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
2020/06/04 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
CSS3实现银灰色动画效果的导航菜单代码
2015/09/01 HTML / CSS
厨房工作人员岗位职责
2013/11/15 职场文书
中学劳技课教师的自我评价
2014/02/05 职场文书
个人租房协议书
2014/11/28 职场文书
教师节班会主持词
2015/07/06 职场文书
求职信:求职应该注意的问题
2019/04/24 职场文书