资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

thinkphp实现pdf导出的方法

小编给大家分享一下thinkphp实现pdf导出的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

成都创新互联长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为烈山企业提供专业的成都网站设计、网站制作烈山网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

代码编写前先引入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 = '';
        $content .= '';
        $content .= '';
        $content .= '';
        $content .= '考试结果';
        $content .= '';
        $content .= '';
        $content .= '

'; $content .= '

考试结果

'; $content .= '

'; $content .= '

姓名:'; $content .= $name; $content .= ''; $content .= '1231'; $content .= ''; $content .= '考试用时:'; $content .= gmdate("i:s", $parameter['time_cost']); $content .= ''; $content .= '1231'; $content .= ''; $content .= '考试分数:'; $content .= $parameter['score']; $content .= ''; $content .= '


'; foreach ($data as $k => $v) { $content .= '

'; $content .= $k + 1; $content .= '、'; $content .= $v['question_title']; $content .= '

'; $content .= '

您的选项为:'; $content .= $v['cont']; $content .= '

'; $content .= '

您的答案为:'; $content .= $v['result']; $content .= '

'; $content .= '

正确选项为:'; $content .= $v['state']; $content .= '

'; $content .= '

正确答案为:'; $content .= $v['stateresult']; $content .= '

'; }; $content .= '

'; $content .= ''; $content .= ''; 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');
  }

看完了这篇文章,相信你对thinkphp实现pdf导出的方法有了一定的了解,想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


名称栏目:thinkphp实现pdf导出的方法
文章链接:http://cdkjz.cn/article/ijdggp.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220