使用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经典的给图片加水印程序
Dec 06 PHP
php防注
Jan 15 PHP
PHP 开源AJAX框架14种
Aug 24 PHP
PHP 代码规范小结
Mar 08 PHP
Fine Uploader文件上传组件应用介绍
Jan 06 PHP
php引用返回与取消引用的详解
Jun 08 PHP
PHP对接微信公众平台消息接口开发流程教程
Mar 25 PHP
PHP中unset,array_splice删除数组中元素的区别
Jul 28 PHP
thinkphp四种url访问方式详解
Nov 28 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
Feb 04 PHP
PHP中的日期时间处理利器实例(Carbon)
Jun 09 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 has encountered an Access Violation 错误的解决方法
2010/01/17 PHP
php之Smarty模板使用方法示例详解
2014/07/08 PHP
PHP获取一年有几周以及每周开始日期和结束日期
2015/08/06 PHP
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
Laravel5.4简单实现app接口Api Token认证方法
2019/08/29 PHP
jQuery.getScript加载同域JS的代码
2012/02/13 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
AngularJS实现路由实例
2017/02/12 Javascript
详解vue-cli与webpack结合如何处理静态资源
2017/09/19 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
vue-路由精讲 二级路由和三级路由的作用
2020/08/06 Javascript
jQuery实现带进度条的轮播图
2020/09/13 jQuery
解决Antd Table表头加Icon和气泡提示的坑
2020/11/17 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
解决python matplotlib imshow无法显示的问题
2018/05/24 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
Pandas读取csv时如何设置列名
2020/06/02 Python
联想哥伦比亚网上商城:Lenovo Colombia
2017/01/10 全球购物
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
学习十八大精神心得体会
2013/12/31 职场文书
复核员上岗演讲稿
2014/01/05 职场文书
家长会主持词
2014/03/26 职场文书
关于读书的演讲稿400字
2014/08/27 职场文书
安装工程师岗位职责
2015/02/13 职场文书
信访维稳承诺书
2015/05/04 职场文书
Python基于百度API识别并提取图片中文字
2021/06/27 Python
详解jQuery的核心函数和事件处理
2022/02/18 jQuery
一级电子管军用接收机测评
2022/04/05 无线电