使用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 相关文章推荐
多重?l件?合查?(二)
Oct 09 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
Dec 21 PHP
php缓冲 output_buffering的使用详解
Jun 13 PHP
解析php利用正则表达式解决采集内容排版的问题
Jun 20 PHP
php $_SERVER windows系统与linux系统下的区别说明
Feb 14 PHP
PHP根据图片色界在不同位置加水印的方法
Jul 01 PHP
PHP单态模式简单用法示例
Nov 16 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
Laravel框架FormRequest中重写错误处理的方法
Feb 18 PHP
Yii2.0框架behaviors方法使用实例分析
Sep 30 PHP
tp5递归 无限级分类详解
Oct 18 PHP
PHP中SESSION过期设置
Mar 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压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
php获取通过http协议post提交过来xml数据及解析xml
2012/12/16 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
JQuery CSS样式控制 学习笔记
2009/07/23 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
2013/12/12 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
2017/02/08 Javascript
js实现九宫格的随机颜色跳转
2017/02/19 Javascript
axios发送post请求,提交图片类型表单数据方法
2018/03/16 Javascript
15个顶级开源JavaScript框架和库
2018/10/10 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
react-native滑动吸顶效果的实现过程
2019/06/03 Javascript
小程序实现搜索框
2020/06/19 Javascript
如何使用JavaScript检测空闲的浏览器选项卡
2020/05/28 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
[02:49]2018DOTA2亚洲邀请赛主赛事决赛日战况回顾 Mineski鏖战5局夺得辉耀
2018/04/10 DOTA
Python入门及进阶笔记 Python 内置函数小结
2014/08/09 Python
Python简单计算数组元素平均值的方法示例
2017/12/26 Python
python机器学习理论与实战(一)K近邻法
2021/01/28 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
python中pika模块问题的深入探究
2018/10/13 Python
python opencv将表格图片按照表格框线分割和识别
2019/10/30 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
2020/03/30 Python
基于DOM+CSS3实现OrgChart组织结构图插件
2016/03/02 HTML / CSS
全面解析HTML5中的标准属性与自定义属性
2016/02/18 HTML / CSS
Puccini乌克兰:购买行李箱、女士手袋网上商店
2020/08/06 全球购物
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
Ruby如何实现动态方法调用
2012/11/18 面试题
平面设计求职信
2014/03/10 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
小兵张嘎观后感300字
2015/06/03 职场文书
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android