PHP中使用TCPDF生成PDF文档实例


Posted in PHP onJuly 01, 2014

实际工作中,我们要使用PHP动态的创建PDF文档,目前有许多开源的PHP创建PDF的类库,今天我给大家来介绍一款优秀的PDF库,它就是TCPDF,TCPDF是一个用于快速生成PDF文件的PHP5函数包。TCPDF基于FPDF进行扩展和改进,增强了实用功能。

特性

TCPDF具有以下特性:

1、支持页面页脚;
2、支持HTML标签代码;
3、支持jpg/png/gif/svg图形图像;
4、支持表格;
5、支持中文字符;(有些PDF类不支持中文或者处理中文相当麻烦)
6、自动分页,自动页码,等等。

如何使用

您可以从TCPDF官网获取最新版本:http://www.tcpdf.org。官网提供了几十个示例以及说明文档,下载解压后一定要注意文件路径,如何使用TCPDF,可以从以下5个步骤完成:

1、require_once导入tcpdf.php文件及相关配置信息;
2、实例化TCPDF;
3、设置PDF文档的格式,包括文档信息、页眉、页尾、字体、外间距、图片边框、分页等;
4、导入PDF文档的内容,可以是单行或多行简单字符串,也可以HTML格式的字符串等;
5、输出PDF文档。

代码示例:

require_once('tcpdf.php'); 

//实例化 

$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false); 

 

// 设置文档信息 

$pdf->SetCreator('Helloweba'); 

$pdf->SetAuthor('yueguangguang'); 

$pdf->SetTitle('Welcome to helloweba.com!'); 

$pdf->SetSubject('TCPDF Tutorial'); 

$pdf->SetKeywords('TCPDF, PDF, PHP'); 

 

// 设置页眉和页脚信息 

$pdf->SetHeaderData('logo.png', 30, 'Helloweba.com', '致力于WEB前端技术在中国的应用',  

      array(0,64,255), array(0,64,128)); 

$pdf->setFooterData(array(0,64,0), array(0,64,128)); 

 

// 设置页眉和页脚字体 

$pdf->setHeaderFont(Array('stsongstdlight', '', '10')); 

$pdf->setFooterFont(Array('helvetica', '', '8')); 

 

// 设置默认等宽字体 

$pdf->SetDefaultMonospacedFont('courier'); 

 

// 设置间距 

$pdf->SetMargins(15, 27, 15); 

$pdf->SetHeaderMargin(5); 

$pdf->SetFooterMargin(10); 

 

// 设置分页 

$pdf->SetAutoPageBreak(TRUE, 25); 

 

// set image scale factor 

$pdf->setImageScale(1.25); 

 

// set default font subsetting mode 

$pdf->setFontSubsetting(true); 

 

//设置字体 

$pdf->SetFont('stsongstdlight', '', 14); 

 

$pdf->AddPage(); 

 

$str1 = '欢迎来到Helloweba.com'; 

 

$pdf->Write(0,$str1,'', 0, 'L', true, 0, false, false, 0); 

 

//输出PDF 

$pdf->Output('t.pdf', 'I');

保存后用浏览器打开,如果您的系统安装了PDF阅读器或者使用google chrome直接在浏览器中打开,否则会提示下载生成的PDF。

其他php生成PDF的常用类

FPDF(http://www.fpdf.org/)

HTML2PDF(http://html2pdf.seven49.net/)
HTML2PDF能够把一个HTML文本转换成一个打印机友好的PDF文件。这个PHP脚本构建在FPDF PHP脚本之上。

TCPDF(http://tcpdf.sourceforge.net/)
TCPDF是一个用于快速生成PDF文件的PHP5函数包。TCPDF基于FPDF进行扩展和改进。支持UTF-8,Unicode,HTML和XHTML。

html2ps(http://user.it.uu.se/~jan/html2ps.html)
html2ps 能够把带有图片,复杂表格(包含rowspan/colspan) ,layer/div和css样式的HTML转换成Postscript与PDF。 html2ps对CSS2.1支持非常好,并且很好地兼容不正确的HMTL。它甚至能够转换几乎是采用CSS设计的网站如msn.com。

HTML_ToPDF(http://www.rustyparts.com/pdf.php)
HTML_ToPDF能够把任何HTML文档转换成在任何平台和打印机下界面格式都一样的PDF文档。它包括支持图片转换,使用样式表来定制PDF文件和错误处理。

cPdfWriter(http://freshmeat.net/projects/cpdfwriter/)
cPdfWriter是一个能够输出PDF文档的PHP5 class。基于TCPDF,FPDF和其它相关脚本。

dompdf(http://www.digitaljunkies.ca/dompdf/)
dompdf是一个HTML到PDF的转换工具。它的核心是一个遵循大部份CSS2.1样式的Rendering引擎。dompdf采用样式驱动, 它能够下载并读取外部样式,整个样式标签和单个HTML元素的样式属性。它同样支持目当大部份HTML属性。

PHP 相关文章推荐
JAVA/JSP学习系列之二
Oct 09 PHP
DedeCMS dede_channeltype表字段注释
Apr 07 PHP
ionCube 一款类似zend的PHP加密/解密工具
Jul 25 PHP
PHP删除特定数组内容并且重建数组索引的方法.
Mar 25 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
Jul 01 PHP
一个经典的PHP文件上传类分享
Nov 18 PHP
详解WordPress中添加友情链接的方法
May 21 PHP
Yii控制器中操作视图js的方法
Jul 04 PHP
php读取XML的常见方法实例总结
Apr 25 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
Oct 06 PHP
Laravel学习基础之migrate的使用教程
Oct 11 PHP
PHP中非常有用却鲜有人知的函数集锦
Aug 17 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 #PHP
2个比较经典的PHP加密解密函数分享
Jul 01 #PHP
PHP实现生成唯一编号(36进制的不重复编号)
Jul 01 #PHP
ThinkPHP使用smarty模板引擎的方法
Jul 01 #PHP
PHP使用GIFEncoder类处理gif图片实例
Jul 01 #PHP
ThinkPHP模板IF标签用法详解
Jul 01 #PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
Jul 01 #PHP
You might like
微盾PHP脚本加密专家php解密算法
2020/09/13 PHP
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
php设计模式 Composite (组合模式)
2011/06/26 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
javascript比较文档位置
2008/04/08 Javascript
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
2009/03/21 Javascript
基于jquery的滑动样例代码
2010/11/20 Javascript
js防止表单重复提交实现代码
2012/09/05 Javascript
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
2014/02/19 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
js给table赋值的实例代码
2016/10/13 Javascript
AngularJS实现路由实例
2017/02/12 Javascript
js实现移动端导航点击自动滑动效果
2017/07/18 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
2018/09/04 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
深入了解JS之作用域和闭包
2020/06/16 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
python 基础教程之Map使用方法
2017/01/17 Python
python删除文本中行数标签的方法
2018/05/31 Python
python计算列表内各元素的个数实例
2018/06/29 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
详解CSS3中Media Queries的相关使用
2015/07/17 HTML / CSS
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
Linux不知道文件后缀名怎么判断文件类型
2012/04/26 面试题
出纳的岗位职责
2013/11/09 职场文书
单位介绍信范文
2014/01/18 职场文书
2014年教师节国旗下讲话稿
2014/09/10 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
MySQL连表查询分组去重的实现示例
2021/07/01 MySQL
Nginx反向代理学习实例教程
2021/10/24 Servers