您的位置 首页 php

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

本篇文章主要讲述的是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插件)的详细内容,更多请关注求知技术网其它相关文章!

文章来源:智云一二三科技

文章标题:thinkphp如何轻松实现pdf的导出(利用tcpdf插件)

文章地址:https://www.zhihuclub.com/5124.shtml

关于作者: 智云科技

热门文章

网站地图