使用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 相关文章推荐
基于Zend的Config机制的应用分析
May 02 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
Jul 01 PHP
php断点续传之如何分割合并文件
Mar 22 PHP
用PHP来计算某个目录大小的方法
Apr 01 PHP
php实现的返回数据格式化类实例
Sep 22 PHP
php轻松实现文件上传功能
Mar 03 PHP
CodeIgniter常用知识点小结
May 26 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
Nov 12 PHP
PHP正则删除HTML代码中宽高样式的方法
Jun 12 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
Sep 29 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
PHP字符串中抽取子串操作实例分析
Jun 22 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简单隔行变色功能实现代码
2016/07/09 PHP
5 cool javascript apps
2007/03/24 Javascript
JQUERY 浏览器判断实现函数
2009/08/20 Javascript
js静态方法与实例方法分析
2011/07/04 Javascript
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
javascript比较语义化版本号的实现代码
2016/09/09 Javascript
微信小程序 wx:key详细介绍
2016/10/28 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
three.js 入门案例详解
2018/01/23 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
2018/07/10 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
JavaScript实现栈结构Stack过程详解
2020/03/07 Javascript
使用 Github Actions 自动部署 Angular 应用到 Github Pages的方法
2020/07/20 Javascript
[46:10]2014 DOTA2国际邀请赛中国区预选赛 CnB VS HGT
2014/05/21 DOTA
python实现多线程采集的2个代码例子
2014/07/07 Python
python利用Tesseract识别验证码的方法示例
2019/01/21 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
python 插入日期数据到Oracle实例
2020/03/02 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
英国最大的独立家具零售商:Furniture Village
2016/09/06 全球购物
世界上第一个水枕头:Mediflow
2018/12/06 全球购物
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
如何找出EMP表里面SALARY第N高的employee
2013/12/05 面试题
党校自我鉴定范文
2013/10/02 职场文书
模具设计与制造专业应届生求职信
2013/10/18 职场文书
企业宣传方案
2014/03/04 职场文书
村主任群众路线个人对照检查材料
2014/09/26 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
搞笑老公保证书
2015/02/26 职场文书
研究生给导师的自荐信
2015/03/06 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书