使用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 相关文章推荐
JAVA/JSP学习系列之四
Oct 09 PHP
第八节 访问方式 [8]
Oct 09 PHP
PHP header函数分析详解
Aug 06 PHP
PHP中计算字符串相似度的函数代码
Dec 29 PHP
php提示Failed to write session data错误的解决方法
Dec 17 PHP
分享php分页的功能模块
Jun 16 PHP
Thinkphp批量更新数据的方法汇总
Jun 29 PHP
使用PHP免费发送定时短信的实例
Oct 24 PHP
PHP使用GD库输出汉字的方法【测试可用】
Nov 10 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
Apr 27 PHP
PHP实现的各类hash算法长度及性能测试实例
Aug 27 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
Jan 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
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
jquery创建div 实现代码
2009/04/27 Javascript
js null undefined 空区别说明
2010/06/13 Javascript
控制文字内容的显示与隐藏示例
2014/06/11 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
2016/05/13 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
angularjs 源码解析之injector
2016/08/22 Javascript
javascript工厂模式和构造函数模式创建对象方法解析
2016/12/30 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
Vue-router 中hash模式和history模式的区别
2018/07/24 Javascript
对angular 实时更新模板视图的方法$apply详解
2018/10/09 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
2019/08/17 Javascript
Python计算回文数的方法
2015/03/11 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
2016/06/02 Python
python 调用HBase的简单实例
2016/12/18 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
python查询mysql,返回json的实例
2018/03/26 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
pyqt 实现在Widgets中显示图片和文字的方法
2019/06/13 Python
英国亚马逊官方网站:Amazon.co.uk
2019/08/09 全球购物
应届生新闻编辑求职信
2013/11/19 职场文书
单位婚育证明范本
2014/11/21 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
2016年度先进班组事迹材料
2016/03/01 职场文书
Python 线程池模块之多线程操作代码
2021/05/20 Python
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js