使用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 相关文章推荐
回答PHPCHINA上的几个问题:URL映射
Feb 14 PHP
域名和cookie问题(域名后缀)
Oct 10 PHP
基于PHP Socket配置以及实例的详细介绍
Jun 13 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
Jun 21 PHP
php统计文章排行示例
Mar 04 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
Oct 26 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
Sep 23 PHP
浅谈PHP中其他类型转化为Bool类型
Mar 28 PHP
浅谈PHP中new self()和new static()的区别
Aug 11 PHP
PDO::errorInfo讲解
Jan 28 PHP
php数组和链表的区别总结
Sep 20 PHP
设定php简写功能的方法
Nov 28 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队列用法实例
2014/11/05 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
2016/12/08 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
2019/05/08 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
jQuery图片轮播的具体实现
2013/09/11 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
JS计算网页停留时间代码
2014/04/28 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
2015/05/06 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
2015/10/15 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
fullpage.js全屏滚动插件使用实例
2016/09/06 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
vue-router beforeEach跳转路由验证用户登录状态
2018/12/26 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
使用Mock.js生成前端测试数据
2020/12/13 Javascript
[01:21:58]守擂赛DOTA2第一周决赛
2020/04/22 DOTA
python线程锁(thread)学习示例
2013/12/04 Python
Python中的列表知识点汇总
2015/04/14 Python
Python中的super用法详解
2015/05/28 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
2017/07/06 Python
使用Python中的reduce()函数求积的实例
2019/06/28 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
python代码能做成软件吗
2020/07/24 Python
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
大学毕业生自我鉴定
2013/11/05 职场文书
财政局长自荐信范文
2013/12/22 职场文书
房地产项目策划书
2014/02/05 职场文书
服装设计师职业生涯规划范文
2014/02/28 职场文书
竞选班干部的演讲稿
2014/04/24 职场文书
合伙经营协议书范本(通用版)
2014/12/03 职场文书
小升初自荐信范文
2015/03/05 职场文书
保险内勤岗位职责
2015/04/13 职场文书
技能培训通讯稿
2015/07/18 职场文书
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL