使用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 的ArrayAccess接口 像数组一样来访问你的PHP对象
Oct 12 PHP
PHP应用JSON技巧讲解
Feb 03 PHP
php_screw 1.5:php加密: 安装与使用详解
Jun 20 PHP
php数组去重复数据示例
Feb 25 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
Nov 03 PHP
PHP获取数组中重复最多的元素的实现方法
Nov 11 PHP
PHP图片处理之图片背景、画布操作
Nov 19 PHP
php递归实现无限分类的方法
Jul 28 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
May 20 PHP
PHP快速排序quicksort实例详解
Sep 28 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
Dec 18 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 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
Windows下利用Gvim写PHP产生中文乱码问题解决方法
2011/04/20 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
php实现的用户查询类实例
2015/06/18 PHP
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
学习从实践开始之jQuery插件开发 菜单插件开发
2012/05/03 Javascript
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
关于JS管理作用域的问题
2013/04/10 Javascript
js修改input的type属性问题探讨
2013/10/12 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
基于jQuery实现以手风琴方式展开和折叠导航菜单
2016/01/28 Javascript
JavaScript中对JSON对象的基本操作示例
2016/05/21 Javascript
AngularJS表单提交实例详解
2017/02/18 Javascript
微信小程序页面间通信的5种方式
2017/03/31 Javascript
jQuery Form插件使用详解_动力节点Java学院整理
2017/07/17 jQuery
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
2018/04/27 jQuery
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
2020/09/01 Javascript
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
Python变量和数据类型详解
2017/02/15 Python
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
使用matplotlib中scatter方法画散点图
2019/03/19 Python
python处理“
2019/06/10 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
经济学人订阅:The Economist
2018/07/19 全球购物
Windows和Linux动态库应用异同
2016/07/28 面试题
业务部经理岗位职责
2014/01/04 职场文书
车间机修工岗位职责
2014/02/28 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python