thinkphp如何轻松实现pdf的导出(利用tcpdf插件)

thinkphp如何轻松实现pdf的导出(利用tcpdf插件)

内容导读

收集整理的这篇技术教程文章主要介绍了thinkphp如何轻松实现pdf的导出(利用tcpdf插件),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3932字,纯文字阅读大概需要6分钟

内容图文

本篇文章主要讲述的是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');  }

相关教程:PHP视频教程

以上就是thinkphp如何轻松实现pdf的导出(利用tcpdf插件)的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的thinkphp如何轻松实现pdf的导出(利用tcpdf插件)全部内容,希望文章能够帮你解决thinkphp如何轻松实现pdf的导出(利用tcpdf插件)所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com