thinkphp如何轻松实现pdf的导出(利用tcpdf插件)
发布:smiling 来源: PHP粉丝网 添加日期:2020-04-06 22:37:20 浏览: 评论:0
本篇文章主要讲述的是thinkphp轻松实现pdf导出的方法代码,具有一定的参考价值,感兴趣的朋友可以了解一下,希望能对你有所帮助。
代码编写前先引入tcpdf整个文件夹到项目目录的ThinkPHP文件夹下 如:/ThinkPHP/Library/Vendor/tcpdf
其他的不多说直接上代码
导出考试结果明细
- public function export()
- {
- // 导出考试结果明细(PDF)
- $id = I('id');
- $detailed = D('member_test_result');
- $parameter = $detailed->detailedResults($id);
- $name = $parameter['member_name'];
- $result = json_decode($parameter['test_result_str']);
- foreach ($result as $k => $v) {
- $test = M('test_cont');
- $array['question_title'] = $test->where('id=' . $k)->getField('qustion_title');
- //正确选项
- $array['state'] = $test->where('id=' . $k)->getField('state');
- //正确答案
- $wheres['test_id'] = $k;
- $wheres['state'] = $array['state'];
- $array['stateresult'] = M('test_answer')->where($wheres)->getField('answer_name');
- //选项
- $array['cont'] = $v;
- //选项内容
- $where['test_id'] = $k;
- $where['state'] = $array['cont'];
- $array['result'] = M('test_answer')->where($where)->getField('answer_name');
- $data[] = $array;
- }
- $content = '<!doctype html>';
- $content .= '<html lang="en">';
- $content .= '<head>';
- $content .= '<meta charset="UTF-8" />';
- $content .= '<title>考试结果</title>';
- $content .= '</head>';
- $content .= '<body>';
- $content .= '<p class="content">';
- $content .= '<p align="center" style="color: #0a6ebd;font-size: 24px"><b>考试结果</b></p>';
- $content .= ' <p style="color:#6a6a6a;letter-spacing:4px">';
- $content .= '<p><span>姓名:';
- $content .= $name;
- $content .= '</span>';
- $content .= '<span style="color:#fff;">1231';
- $content .= '</span>';
- $content .= '<span style="" >考试用时:';
- $content .= gmdate("i:s", $parameter['time_cost']);
- $content .= '</span>';
- $content .= '<span style="color:#fff;">1231';
- $content .= '</span>';
- $content .= '<span style="">考试分数:';
- $content .= $parameter['score'];
- $content .= '</span>';
- $content .= '<hr/>';
- foreach ($data as $k => $v) {
- $content .= '<p style=font-size: 20px><b>';
- $content .= $k + 1;
- $content .= '、</b>';
- $content .= $v['question_title'];
- $content .= '</p>';
- $content .= '<p style=" font-size: 14px">您的选项为:<span style="color:#0a6ebd;">';
- $content .= $v['cont'];
- $content .= '</span></p>';
- $content .= '<p style=" font-size: 14px">您的答案为:<span style="color:#0a6ebd;">';
- $content .= $v['result'];
- $content .= '</span></p>';
- $content .= '<p style=" font-size: 14px">正确选项为:<span style="color:red;">';
- $content .= $v['state'];
- $content .= '</span></p>';
- $content .= '<p style=" font-size: 14px">正确答案为:<span style="color:red;">';
- $content .= $v['stateresult'];
- $content .= '</span></p>';
- };
- $content .= '</p>';
- $content .= '</body>';
- $content .= '</html>';
- pdf($content);
- }
pdf方法
- function pdf($html){
- vendor('Tcpdf.tcpdf');
- $pdf = new \Tcpdf('P', 'mm', 'A4', true, 'UTF-8', false);
- // 设置打印模式,设置文档信息
- $pdf->SetCreator(PDF_CREATOR);
- $pdf->SetAuthor('Nicola Asuni');
- $pdf->SetTitle('Examination result(考试结果)');
- $pdf->SetSubject('TCPDF Tutorial');
- $pdf->SetKeywords('TCPDF, PDF, PHP, example, test, guide');
- // 是否显示页眉和是否显示页脚
- $pdf->setPrintHeader(false);
- $pdf->setPrintFooter(true);
- // 设置页眉和页脚信息内容
- $pdf->SetHeaderData('logo.jpg', 40, 'Helloweba.com', '小白测试', array(0,64,255), array(0,64,128));
- $pdf->setFooterData(array(0,64,0), array(0,64,128));
- // 设置页眉和页脚字体
- $pdf->setHeaderFont(Array('dejavusans', '', '12'));
- $pdf->setFooterFont(Array('dejavusans', '', '10'));
- // 设置间距
- $pdf->SetHeaderMargin('5');
- $pdf->SetFooterMargin('10');
- // 设置左、上、右的间距
- $pdf->SetMargins('10', '10', '10');
- // 设置是否自动分页 距离底部多少距离时分页
- $pdf->SetAutoPageBreak(TRUE, '15');
- // 设置默认等宽字体
- $pdf->SetDefaultMonospacedFont('courier');
- // 设置行高
- $pdf->setCellHeightRatio(1);
- // 设置图像比例因子
- $pdf->setImageScale(1.25);
- //设置默认字体子集模式
- $pdf->setFontSubsetting(true);
- // 设置字体
- $pdf->SetFont('stsongstdlight', '', 14, '', true);
- $pdf->AddPage();
- $pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
- //PDF输出 I:在浏览器中打开,D:下载,F:在服务器生成pdf ,S:只返回pdf的字符串
- $pdf->Output(rand_string('9').'.pdf', 'I');
- }
Tags: thinkphp tcpdf插件
相关文章
- ·ThinkPHP中自定义错误页面和提示页面 (2013-11-15)
- ·ThinkPHP中Ajax返回(2013-11-15)
- ·ThinkPHP中处理表单中注意(2013-11-15)
- ·ThinkPHP中I(),U(),$this->post()等函数(2013-11-15)
- ·ThinkPHP中公共函数路径和配置项路径的映射(2013-11-15)
- ·ThinkPHP中公共配置文件和各自项目中的配置文件组合(2013-11-15)
- ·ThinkPHP在控制器里的javascript代码不能执行解决方法(2013-11-29)
- ·ThinkPHP3.0略缩图不能保存到子目录(2013-12-03)
- ·thinkphp的循环结构(2014-01-10)
- ·thinkphp特殊标签使用(2014-01-10)
- ·thinkphp模板输出汇总(2014-01-10)
- ·thinkphp模板的赋值与替换(2014-01-10)
- ·thinkphp连贯操作(2014-01-10)
- ·thinkphp区间查询、统计查询、SQL直接查询(2014-01-10)
- ·thinkphp的普通查询与表达式查询(2014-01-10)
- ·RBAC类在ThinkPHP中的四种使用方法(2014-01-10)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)