使用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编程之高级技巧——利用Mysql函数
Oct 09 PHP
在命令行下运行PHP脚本[带参数]的方法
Jan 22 PHP
浅析php中如何在有限的内存中读取大文件
Jul 02 PHP
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
Sep 30 PHP
smarty获得当前url的方法分享
Feb 14 PHP
php数组删除元素示例
Mar 21 PHP
php下Memcached入门实例解析
Jan 05 PHP
PHP遍历XML文档所有节点的方法
Mar 12 PHP
PHP数组与对象之间使用递归实现转换的方法
Jun 24 PHP
Codeigniter中集成smarty和adodb的方法
Mar 04 PHP
PHP面向对象学习之parent::关键字
Jan 18 PHP
PHPTree――php快速生成无限级分类
Mar 30 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
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
在PHP程序中使用Rust扩展的方法
2015/07/03 PHP
PHP经典面试题之设计模式(经常遇到)
2015/10/15 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
2016/10/14 PHP
Laravel框架使用Redis的方法详解
2018/05/30 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
2011/07/31 Javascript
js验证模型自我实现的具体方法
2013/06/21 Javascript
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
表格奇偶行设置不同颜色的核心JS代码
2013/12/24 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
2014/11/04 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
Bootstrap每天必学之标签与徽章
2015/11/27 Javascript
JS中setTimeout的巧妙用法前端函数节流
2016/03/24 Javascript
JS获取随机数和时间转换的简单实例
2016/07/10 Javascript
使用React实现轮播效果组件示例代码
2016/09/05 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
Vue使用watch监听一个对象中的属性的实现方法
2019/05/10 Javascript
vue 如何使用递归组件
2020/10/23 Javascript
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
使用Python简单的实现树莓派的WEB控制
2016/02/18 Python
举例讲解Python中metaclass元类的创建与使用
2016/06/30 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
在python 中实现运行多条shell命令
2019/01/07 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
2019/05/05 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
Pycharm创建项目时如何自动添加头部信息
2019/11/14 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
python中id函数运行方式
2020/07/03 Python
python正则表达式 匹配反斜杠的操作方法
2020/08/07 Python
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
纽约州一群才华横溢的金匠制作而成:Hearth Jewelry
2019/03/22 全球购物
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
营业员实习自我鉴定
2013/12/07 职场文书