php生成pdf文件的需求是不怎么常见的;当然也是有的;
既然已经整合使用了;那就写篇博客来讲解下吧;
示例项目:https://github.com/baijunyao/thinkphp-bjyadmin
一:引入tcpdf
/ThinkPHP/Library/Vendor/Tcpdf
把tcpdf整个目录拷到自己的项目中;
二:函数
/Application/Common/Common/function.php
/**
* 生成pdf
* @param string $html 需要生成的内容
*/
function pdf($html='<h1 style="color:red">hello word</h1>'){
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
需要注明的就是:
可以写html标签的;比如说是识别h标签的字体加粗加大效果的;
可以写style样式;但是并不能完全支持;
tcpdf的官网需要自带梯子:http://www.tcpdf.org
本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客https://baijunyao.com 欢迎捐赠赞赏加入组织创建QQ群及捐赠渠道
kuhn554:请问下,pdf导出数据上千条的时候服务器直接超时然后崩了,怎么破 T_T 调试是在addpage
2018-07-12 18:12:51 回复
♚Autism♚:生成pdf自动保存到本地不要让我确认下载,请问要怎么写
2017-09-27 15:26:07 回复
♚Autism♚:生成pdf自动保存到本地不要让我确认下载
2017-09-27 15:25:12 回复
gdcgit:// 设置图像比例因子 $pdf->{ ;
2017-05-15 22:38:55 回复
◆◇想这样 简简单单:大神,我使用
2017-02-13 23:46:46 回复
、我守一座空城:你好 请问下 TCPDF ERROR: Some data has already been output, can't send PDF file 出现这个错误怎么解决? 我是个新手
2016-12-06 15:12:40 回复
文艺春秋:
2016-09-24 14:31:08 回复
阿小:怎么生成code128条码,手机可以是别的,并以pdf格式输出,求白师兄帮忙
2016-09-22 17:57:30 回复
香蕉你个banana:爱上对方过后就哭了
2016-08-26 11:14:27 回复
南城阿牛:博主你好,我是从github上追过来的^_^你的所有项目我都收藏了,非常感谢,我是一个php新手程序员,半年经验了,现在正在做一个项目类似于百度文库和道客巴巴的在线文档分享平台,基本功能就是用户注册登陆提交自己的文档,然后别的用户可以在线预览文档并付费下载。我这里遇到一个技术难点,就是把用户上传的不同格式的文档在线转化成flash预览,还要限制预览比例(比如30%)请问您有什么比较好的方法吗
2016-06-22 11:31:22 回复
最新评论