使用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 相关文章推荐
强烈推荐:php.ini中文版(2)
Oct 09 PHP
php 冒泡排序 交换排序法
May 10 PHP
php去除HTML标签实例
Nov 06 PHP
php广告加载类用法实例
Sep 23 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
Feb 23 PHP
PHP使用curl模拟post上传及接收文件的方法
Mar 04 PHP
php实现背景图上添加圆形logo图标的方法
Nov 17 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
May 09 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
Apr 20 PHP
PHP-FPM和Nginx的通信机制详解
Feb 01 PHP
laravel 解决后端无法获取到前端Post过来的值问题
Oct 22 PHP
PHP与Web页面的交互示例详解二
Aug 04 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执行linux系统命令的常用函数使用说明
2010/04/27 PHP
php数组(array)输出的三种形式详解
2013/06/05 PHP
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
PHP编程之设置apache虚拟目录
2016/07/08 PHP
PHP进程通信基础之信号
2017/02/19 PHP
PHP面向对象程序设计重载(overloading)操作详解
2019/06/13 PHP
ASP 过滤数组重复数据函数(加强版)
2010/05/31 Javascript
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
2016/01/23 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
2016/05/17 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
2016/06/16 Javascript
javascript验证内容为数字以及长度为10的简单实例
2016/08/20 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
基于bootstrap实现多个下拉框同时搜索功能
2017/07/19 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
vue的状态管理模式vuex
2017/11/30 Javascript
jQuery Migrate 插件用法实例详解
2019/05/22 jQuery
JavaScript展开操作符(Spread operator)详解
2019/07/20 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
2019/10/28 Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
2020/06/05 Javascript
npm全局环境变量配置详解
2020/12/15 Javascript
获取python文件扩展名和文件名方法
2018/02/02 Python
漂亮的Django Markdown富文本app插件的实现
2019/01/02 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
基于python实现计算且附带进度条代码实例
2020/03/31 Python
CSS书写规范、顺序和命名规则
2014/03/06 HTML / CSS
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
HTML5中的Web Notification桌面通知功能的实现方法
2019/07/29 HTML / CSS
如何手工释放资源
2013/12/15 面试题
办公室驾驶员岗位职责
2013/11/15 职场文书
开办饭店创业计划书
2013/12/28 职场文书
2015年六一儿童节活动方案
2015/05/05 职场文书
教师远程培训心得体会
2016/01/09 职场文书