使用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防盗链的常用方法小结
Jul 02 PHP
字母顺序颠倒而单词顺序不变的php代码
Aug 08 PHP
Views rows style模板重写代码
May 16 PHP
php-perl哈希算法实现(times33哈希算法)
Dec 30 PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 PHP
php目录遍历函数opendir用法实例
Nov 20 PHP
ThinkPHP实现ajax仿官网搜索功能实例
Dec 02 PHP
php表单提交实例讲解
Nov 12 PHP
php图形jpgraph操作实例分析
Feb 22 PHP
Laravel中任务调度console使用方法小结
May 07 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 PHP
tp5使用layui实现多个图片上传(带附件选择)的方法实例
Nov 17 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输出数组中重名的元素的几种处理方法
2012/09/05 PHP
如何把php5.3版本升级到php5.4或者php5.5
2015/07/31 PHP
PHP 9 大缓存技术总结
2015/09/17 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
2019/04/12 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
Jquery之美中不足小结
2011/02/16 Javascript
Js 时间函数getYear()的使用问题探讨
2013/04/01 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
深入学习jQuery Validate表单验证
2016/01/18 Javascript
jQuery对象的链式操作用法分析
2016/05/10 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
JS实现全屏预览F11功能的示例代码
2018/07/23 Javascript
React实现全局组件的Toast轻提示效果
2018/09/21 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
vue实现在进行增删改操作后刷新页面
2020/08/05 Javascript
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
Python图算法实例分析
2016/08/13 Python
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
深入浅析python 协程与go协程的区别
2019/05/09 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
python 中的[:-1]和[::-1]的具体使用
2020/02/13 Python
Python处理mysql特殊字符的问题
2020/03/02 Python
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
学校校庆演讲稿
2014/05/22 职场文书
庆元旦活动总结
2014/07/09 职场文书
mysql5.6主从搭建以及不同步问题详解
2021/12/04 MySQL