thinkphp整合系列之tcpdf类生成pdf文件

Wesley13
• 阅读 687

php生成pdf文件的需求是不怎么常见的;当然也是有的;

既然已经整合使用了;那就写篇博客来讲解下吧;

示例项目:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin

一:引入tcpdf

/ThinkPHP/Library/Vendor/Tcpdf

把tcpdf整个目录拷到自己的项目中;

二:函数

/Application/Common/Common/function.php

/**  * 生成pdf  * @param  string $html      需要生成的内容  */ function pdf($html='hello word'){     vendor('Tcpdf.tcpdf');     $pdf = new \Tcpdf(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);     // 设置打印模式     $pdf->SetCreator(PDF_CREATOR);     $pdf->SetAuthor('Nicola Asuni');     $pdf->SetTitle('TCPDF Example 001');     $pdf->SetSubject('TCPDF Tutorial');     $pdf->SetKeywords('TCPDF, PDF, example, test, guide');     // 是否显示页眉     $pdf->setPrintHeader(false);     // 设置页眉显示的内容     $pdf->SetHeaderData('logo.png', 60, 'baijunyao.com', '白俊遥博客', array(0,64,255), array(0,64,128));     // 设置页眉字体     $pdf->setHeaderFont(Array('dejavusans', '', '12'));     // 页眉距离顶部的距离     $pdf->SetHeaderMargin('5');     // 是否显示页脚     $pdf->setPrintFooter(true);     // 设置页脚显示的内容     $pdf->setFooterData(array(0,64,0), array(0,64,128));     // 设置页脚的字体     $pdf->setFooterFont(Array('dejavusans', '', '10'));     // 设置页脚距离底部的距离     $pdf->SetFooterMargin('10');     // 设置默认等宽字体     $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);     // 设置行高     $pdf->setCellHeightRatio(1);     // 设置左、上、右的间距     $pdf->SetMargins('10', '10', '10');     // 设置是否自动分页  距离底部多少距离时分页     $pdf->SetAutoPageBreak(TRUE, '15');     // 设置图像比例因子     $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);     if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {         require_once(dirname(__FILE__).'/lang/eng.php');         $pdf->setLanguageArray($l);     }     $pdf->setFontSubsetting(true);     $pdf->AddPage();     // 设置字体     $pdf->SetFont('stsongstdlight', '', 14, '', true);     $pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);     $pdf->Output('example_001.pdf', 'I'); }

三:使用方法

好吧;这个没什么好说的了;全写注释里面了;

更多栗子:/ThinkPHP/Library/Vendor/Tcpdf/examples

需要注明的就是:

  1. 可以写html标签的;比如说是识别h标签的字体加粗加大效果的;

  2. 可以写style样式;但是并不能完全支持;

  3. tcpdf的官网需要自带梯子:http://www.tcpdf.org

thinkphp整合系列之tcpdf类生成pdf文件

本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客http://baijunyao.com

点赞
收藏
评论区
推荐文章
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
SpringBoot 下PDF生成使用填坑总结
一、PDF生成由于直接使用IText生成PDF,数据填充较为繁琐,故:选用Freemarker和IText生成pdf,引入依赖:环境:jdk1.8SpringBoot1.引入freemarkerstarter(版本跟随
Stella981 Stella981
3年前
PDF生成进入基于Web服务的模板时代
!(http://static.oschina.net/uploads/space/2015/0826/211606_us2e_193624.png)     PDF在版式文档中的王者地位不可撼动。我们有多种生成PDF的程序库:FPDF(PHP)、IText(Java)、PDFsharp(.NET)等。在不同语言环境下需要选择不同的程序库,通过A
Wesley13 Wesley13
3年前
Java向PDF模板写入数据
项目需要生成PDF文件,在浏览器实现打印功能。这里只说明如何利用PDF文件模板写入数据整个写入过程我分11步演示,演示过程中的PDF文件我打了马赛克(显示的PDF是公司项目文件),但不影响演示过程。首先安装Adobe AcrobatDC。下载地址:https://pan.baidu.com/s/1BxjHtK5zAWBBsrOGZbEtdw1.
Wesley13 Wesley13
3年前
thinkphp整合系列之融云即时通讯在线聊天
随着技术的发展;现代的网站;越来越趋于应用形式了;不再是像以前那样需要用户刷新页面;获取数据了;服务器端可以主动向用户推送数据;更加及时性了;比较突出的就是即时通讯在线聊天;今个;我们要打造的就是类似于网页版微信的功能;示例项目:http://git.oschina.net/shuaibai123/thinkphpbjyadmin(
Wesley13 Wesley13
3年前
thinkphp的目录结构设计经验总结
用thinkphp开发了好些项目了;最近准备抽空写一些经验总结;希望能给刚开始接触tp的童鞋们提供一些开发的方案;少走一些弯路;少踩一些坑;这些绝对都是些精华干货;耐着性子阅读;相信收货大大的;可以结合git项目对照研究:http://git.oschina.net/shuaibai123/thinkphpbjyadmin(http://g
Wesley13 Wesley13
3年前
TCPDF说明文档
TCPDF说明文档一、首先调用TCPDF文件require\_once('tcpdf.php');二、实例化TCPDF类页面方向(P肖像,L景观)、测量(mm)、页面格式$pdfnewTCPDF('P','mm','A4',true,'UTF8',false);
Stella981 Stella981
3年前
39、chen框架
由于后台使用了chen框架,所以代码不能完全列出,可以到http://git.oschina.net/eternal\_rider/chen(http://git.oschina.net/eternal_rider/chen)下载项目,运行后,即可看到菜单效果级管理。示例框架中写了一个jquery菜单插件实现,可以使用存html代码样式
Wesley13 Wesley13
3年前
thinkphp整合系列之phpqrcode生成二维码
php生成二维码其实挺简单的;当然指的是使用qrcode类库;因此关于是否要写这篇博客;我是犹豫了再三的;不过最后还是决定写下吧;如果有童鞋急着用;就可以直接引了;再个也可以作为即将写的文章微信支付生成的二维码做个铺垫;老规矩;以bjyadmin项目示例:http://git.oschina.net/shuaibai123/thinkphp
Wesley13 Wesley13
3年前
Thinkphp 3.2.1 集成支付宝双接口
1、申请支付宝接口2、下载osgit上面的代码进行改造,地址http://git.oschina.net/smilease/ThinkPay(http://git.oschina.net/smilease/ThinkPay)   首先是要改成合适自己项目的路径,要注意文件的名字要符合tp的规范,比如XxController.class.php