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 相关文章推荐
PHP 文件上传功能实现代码
Jun 24 PHP
PHP技术开发技巧分享
Mar 23 PHP
PHP操作XML作为数据库的类
Dec 19 PHP
php数组一对一替换实现代码
Aug 31 PHP
配置php网页显示各种语法错误
Sep 23 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
Jun 17 PHP
Thinkphp调用Image类生成缩略图的方法
Mar 07 PHP
yii权限控制的方法(三种方法)
Dec 28 PHP
PHP微信支付开发实例
Jun 22 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
Nov 20 PHP
PHP对象实例化单例方法
Jan 19 PHP
PHP自定义错误处理的方法分析
Dec 19 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
图书管理程序(一)
2006/10/09 PHP
PHP实现下载功能的代码
2012/09/29 PHP
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
简单的php+mysql聊天室实现方法(附源码)
2016/01/05 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
Extjs 几个方法的讨论
2010/01/28 Javascript
javascript中关于执行环境的杂谈
2011/08/14 Javascript
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
js中substring和substr的定义和用法
2014/05/05 Javascript
JavaScript在IE和FF下的兼容性问题
2014/05/19 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
js表单序列化判断空值的实例
2017/09/22 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
ES6 Promise对象概念及用法实例详解
2019/10/15 Javascript
JavaScript多种滤镜算法实现代码实例
2019/12/10 Javascript
vue使用vue-quill-editor富文本编辑器且将图片上传到服务器的功能
2021/01/13 Vue.js
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
好的Python培训机构应该具备哪些条件
2018/05/23 Python
python爬取微信公众号文章
2018/08/31 Python
Python入门Anaconda和Pycharm的安装和配置详解
2019/07/16 Python
Django中在xadmin中集成DjangoUeditor过程详解
2019/07/24 Python
python中的Elasticsearch操作汇总
2019/10/30 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
2020/04/12 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
2014年四风问题自我剖析材料
2014/09/15 职场文书
个人授权委托书范文
2014/09/21 职场文书
成本会计岗位职责
2015/02/03 职场文书
2019毕业论文致谢词
2019/06/24 职场文书
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
2021/06/26 Java/Android