将数据生成pdf文件[tcpdf]

将数据生成pdf文件[tcpdf]

通过tcpdf实现将数据生成pdf文件,
官方地址:https://tcpdf.org/examples/
github地址:https://github.com/tecnickcom/tcpdf
将tcpdf下载后放入项目里,用法都比较简单,支持写html。

public function exportPdf()
    {
        
        require "Modules/Lib/tcpdf/Tcpdf/tcpdf.php";
        $arrList = [];//要处理的数据


        //todo 处理内容
        $dataStr = ' <tr>
                          <td  align="center"><b>No.</b></td>
                          <td  align="center" ><b>分组名称</b></td>
                          <td  align="center"><b>股票名称</b></td>
                          <td  align="center"> <b>股票代码</b></td>
                          <td  align="center"><b>得分值</b></td>
                          <td  align="center"><b>预判涨跌</b></td>
                         </tr>';
                foreach ($arrList as $k => $v) {
                    $key = $k + 1;
                    $dataStr .= "<tr>";
                    $dataStr .= '<td align="center">' . $key . '</td>';
                    $dataStr .= '<td align="center">' . $v['group_name'] . '</td>';
                    $dataStr .= '<td align="center">' . $v['shares_name'] . '</td>';
                    $dataStr .= '<td align="center">' . $v['shares_code'] . '</td>';
                    $dataStr .= '<td align="center">' . $v['shares_score'] . '</td>';
                    $zd = $v['prediction_rise'] == 1 ? '涨' : '跌';
                    $dataStr .= '<td align="center">' . $zd . '</td>';
                    $dataStr .= "</tr>";
                }

        //实例化

        $pdf = new \TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
        $str1 = '行业指数';
        // 设置文档信息

        $pdf->SetCreator($str1);

        $pdf->SetAuthor($str1);

        $pdf->SetTitle($str1);

        $pdf->SetSubject('TCPDF Tutorial');

        $pdf->SetKeywords('TCPDF, PDF, PHP');


       

        $pdf->setFooterData(array(0, 64, 0), array(0, 64, 128));


        // 设置页眉和页脚字体

        $pdf->setHeaderFont(array('stsongstdlight', '', '10'));

        $pdf->setFooterFont(array('helvetica', '', '8'));


        // 设置默认等宽字体

        $pdf->SetDefaultMonospacedFont('courier');


        // 设置间距

        $pdf->SetMargins(15, 27, 15);

        $pdf->SetHeaderMargin(5);

        $pdf->SetFooterMargin(10);


        // 设置分页

        $pdf->SetAutoPageBreak(TRUE, 25);


        // set image scale factor

        $pdf->setImageScale(1.25);


        // set default font subsetting mode

        $pdf->setFontSubsetting(true);


        //设置字体

        $pdf->SetFont('stsongstdlight', '', 14);


        $pdf->AddPage();


        //写入文字
//        $pdf->Write(0,$str1,'', 0, 'L', true, 0, false, false, 0);
       //写入html
        $html = <<<EOF
                    <!-- EXAMPLE OF CSS STYLE -->
                    <style>
                     h1 {
                            color: black;
                            font-size: 24pt;
                            /*text-decoration: underline;*/
                        }
                        table.first {
                            color: #003300;
                            font-size: 8pt;
                            border: 1px solid black;
                            line-height:20px;
                        }
                        td {
                            border: 1px solid black;
                            line-height:20px;
                        }
                        .dataTd{
                           text-align: center;
                           align-content: center;
                        }
                    
                    </style>
                   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                    <h1 class="title">$str1</h1>

                    <table class="first" >
                        $dataStr 
                    </table>
EOF;
        $pdf->lastPage();
        $pdf->writeHTML($html, true, false, true, false, '');
        //输出PDF
        ob_clean();
        // F表示可保存 I表示在浏览器打开
        $pdf->Output($_SERVER['DOCUMENT_ROOT'] . "Uploads/pdf/" . time() . '.pdf', 'F');
        $url = "http://" . $_SERVER['HTTP_HOST'] . "/Uploads/pdf/" . time() . '.pdf';
        echo json_encode(['code' => 0, 'msg' => 'success', 'pdf_url' => $url]);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值