使用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实现像JSP,ASP里Application那样的全局变量
Jan 12 PHP
MYSQL环境变量设置方法
Jan 15 PHP
PHP 配置open_basedir 让各虚拟站点独立运行
Nov 12 PHP
ajax+php打造进度条 readyState各状态
Mar 20 PHP
php结合表单实现一些简单功能的例子
Jun 04 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
Sep 20 PHP
php读取mysql乱码,用set names XXX解决的原理分享
Dec 29 PHP
HTML中嵌入PHP的简单方法
Feb 16 PHP
PHP设计模式之简单投诉页面实例
Feb 24 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
Mar 21 PHP
php 人员权限管理(RBAC)实例(推荐)
May 24 PHP
PHP+MySQL实现消息队列的方法分析
May 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
jq的get传参数在utf-8中乱码问题的解决php版
2008/07/23 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
2014/08/22 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
2015/01/29 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
PHP实现文件上传后台处理脚本
2020/03/04 PHP
漂亮的仿flash菜单,来自蓝色经典
2006/06/26 Javascript
拖动布局之保存布局页面cookies篇
2010/10/29 Javascript
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
JS创建自定义表格具体实现
2014/02/11 Javascript
JavaScript图像延迟加载库Echo.js
2016/04/05 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
2016/09/14 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
vue.js删除动态绑定的radio的指定项
2017/06/02 Javascript
浅谈ECMAScript6新特性之let、const
2017/08/02 Javascript
BootStrap给table表格的每一行添加一个按钮事件
2017/09/07 Javascript
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
[01:07:15]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第二场 1月25日
2021/03/11 DOTA
Python在Console下显示文本进度条的方法
2016/02/14 Python
Python中单、双下划线的区别总结
2017/12/01 Python
对Python 检查文件名是否规范的实例详解
2019/06/10 Python
大家都说好用的Python命令行库click的使用
2019/11/07 Python
Python搭建HTTP服务过程图解
2019/12/14 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
Python参数传递机制传值和传引用原理详解
2020/05/22 Python
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
2014/07/21 HTML / CSS
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
英国最大的在线运动补充剂商店:Discount Supplements
2017/06/03 全球购物
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
如何用SQL语句进行模糊查找
2015/09/25 面试题
大学生应聘推荐信范文
2013/11/19 职场文书
家具商场的活动方案
2014/08/16 职场文书
2014年市场部工作总结
2014/11/25 职场文书
财务人员个人工作总结
2015/02/27 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书