使用PHP生成PDF方法详解


Posted in PHP onJanuary 23, 2015

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

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 相关文章推荐
强烈推荐:php.ini中文版(1)
Oct 09 PHP
php4的彩蛋
Oct 09 PHP
超强分页类2.0发布,支持自定义风格,默认4种显示模式
Jan 02 PHP
关于mysql 字段的那个点为是定界符
Jan 15 PHP
PHP开发中常用的字符串操作函数
Feb 08 PHP
基于php设计模式中工厂模式详细介绍
May 15 PHP
php开发微信支付获取用户地址
Oct 04 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
May 20 PHP
深入理解PHP JSON数组与对象
Jul 19 PHP
thinkPHP引入类的方法详解
Dec 08 PHP
PHP中的日期时间处理利器实例(Carbon)
Jun 09 PHP
漂亮的thinkphp 跳转页封装示例
Oct 16 PHP
C# WinForm中实现快捷键自定义设置实例
Jan 23 #PHP
对PHP PDO的一些认识小结
Jan 23 #PHP
smarty模板引擎中自定义函数的方法
Jan 22 #PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
Jan 22 #PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
Jan 22 #PHP
smarty模板引擎从配置文件中获取数据的方法
Jan 22 #PHP
smarty模板引擎从php中获取数据的方法
Jan 22 #PHP
You might like
PHP写MySQL数据 实现代码
2009/06/15 PHP
php设计模式 Visitor 访问者模式
2011/06/28 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
2013/12/24 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
2014/07/04 PHP
Yii中srbac权限扩展模块工作原理与用法分析
2016/07/14 PHP
初识JQuery 实例一(first)
2011/03/16 Javascript
js日历功能对象
2012/01/12 Javascript
Javascript数组与字典用法分析
2014/12/13 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
浅谈javascript中replace()方法
2015/11/10 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
AngularJS路由Ui-router模块用法示例
2017/05/29 Javascript
js定时器实现倒计时效果
2017/11/05 Javascript
对angularjs框架下controller间的传值方法详解
2018/10/08 Javascript
jQuery时间戳和日期相互转换操作示例
2018/12/07 jQuery
js/jQuery实现全选效果
2019/06/17 jQuery
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
使用PDB模式调试Python程序介绍
2015/04/05 Python
Python基于pygame实现的弹力球效果(附源码)
2015/11/11 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
python3实现windows下同名进程监控
2018/06/21 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
Python模块、包(Package)概念与用法分析
2019/05/31 Python
Python 用matplotlib画以时间日期为x轴的图像
2019/08/06 Python
Python如何给你的程序做性能测试
2020/07/29 Python
4款Python 类型检查工具,你选择哪个呢?
2020/10/30 Python
用canvas做一个DVD待机动画的实现代码
2019/04/12 HTML / CSS
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
本科生学习总结的自我评价
2013/10/02 职场文书
金融管理应届生求职信
2014/02/20 职场文书
社区志愿者培训方案
2014/06/10 职场文书
公司员工活动策划方案
2014/08/20 职场文书
毕业论文致谢信
2015/05/14 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers