使用PHP把HTML生成PDF文件的几个开源项目介绍


Posted in PHP onNovember 17, 2014

利用PHP编码生成PDF文件是一个非常耗时的工作。在早期,开发者使用PHP并借助FPDF来生成PDF文件。但是如今,已经有很多函数库可以使用了,并且能够从你提供的HTML文件生成PDF文档。这让原先耗时的工作变得非常简单了。

FPDF是很早就被使用的,其特点如下:

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中的字符串函数
Nov 24 PHP
php下将XML转换为数组
Jan 01 PHP
jQuery EasyUI API 中文文档 - DateBox日期框
Oct 15 PHP
php 操作调试的方法
Jul 12 PHP
Linux下php5.4启动脚本
Aug 03 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
Sep 30 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
Dec 09 PHP
PHP中Trait及其应用详解
Feb 14 PHP
PHP后期静态绑定之self::限制实例分析
Dec 21 PHP
thinkphp5使用无限极分类
Feb 18 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
May 01 PHP
PHP7 list() 函数修改
Mar 09 PHP
php检测数组长度函数sizeof与count用法
Nov 17 #PHP
php中filter_input函数用法分析
Nov 15 #PHP
getimagesize获取图片尺寸实例
Nov 15 #PHP
php中rename函数用法分析
Nov 15 #PHP
php格式输出文件var_export函数实例
Nov 15 #PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
Nov 15 #PHP
php函数与传递参数实例分析
Nov 15 #PHP
You might like
用PHP实现验证码功能
2006/10/09 PHP
使用无限生命期Session的方法
2006/10/09 PHP
PHP中使用curl入门教程
2015/07/02 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
php生成二维码图片方法汇总
2016/12/17 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
javascript调试说明
2010/06/07 Javascript
JS延时器提示框的应用实例代码解析
2016/04/27 Javascript
详解Vue-Cli 异步加载数据的一些注意点
2017/08/12 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
微信小程序云开发如何使用云函数生成二维码
2019/05/18 Javascript
Vue实现根据hash高亮选项卡
2019/05/27 Javascript
150行Node.js实现的dns代理工具
2019/08/02 Javascript
vant自定义二级菜单操作
2020/11/02 Javascript
vue使用vue-quill-editor富文本编辑器且将图片上传到服务器的功能
2021/01/13 Vue.js
Python中flatten( )函数及函数用法详解
2018/11/02 Python
Python2与Python3的区别实例分析
2019/04/11 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
2019/07/22 Python
python点击鼠标获取坐标(Graphics)
2019/08/10 Python
python语言线程标准库threading.local解读总结
2019/11/10 Python
Python函数基本使用原理详解
2020/03/19 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
HTML5 语音搜索(淘宝店语音搜素)
2013/01/03 HTML / CSS
捷克家居装饰及图书音像购物网站:Velký košík
2018/04/16 全球购物
试述DBMS的主要功能
2016/11/13 面试题
C#笔试题和英文面试题
2013/02/07 面试题
EJB的几种类型
2012/08/15 面试题
高中生毕业自我鉴定
2013/10/10 职场文书
生产厂长岗位职责
2014/02/21 职场文书
党支部综合考察材料
2014/05/19 职场文书
高中生逃课检讨书
2014/10/10 职场文书
卖房协议书样本
2014/10/30 职场文书
2014年法制宣传日活动方案
2014/11/02 职场文书
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL