如何在cakephp中循环创建pdf文件?

时间:2012-02-21 11:59:51

标签: cakephp

我已经实施了pdf创作,

http://bakery.cakephp.org/articles/kalileo/2010/06/08/creating-pdf-files-with-cakephp-and-tcpdf

但按照我的逻辑, 有一个链接“printAll”然后在循环中我必须生成发票pdf很多次。 那么可以使用循环在一个函数中创建多个pdf文件吗?

直到现在我已经将逻辑放在ctp文件中并在foreach循环中编写逻辑但仍然只生成了第一个记录的pdf。

我该怎么做?还有其他办法吗?

所以请任何人都可以帮助我?

提前致谢..

<_>在generate_invoice.ctp


<?php
     App::import('Vendor','xtcpdf'); 
     $tcpdf = new XTCPDF();
     $textfont = 'freesans'; 
     $tcpdf->SetAutoPageBreak( false );
     $tcpdf->xheadercolor = array(255,255,255);
     $tcpdf->AddPage();
     $tcpdf->SetTextColor(0, 0, 0);
     $tcpdf->SetFont($textfont,'',10);
     $total_records = 0;
     foreach($POdata as $order)
 {
         $po = $order['Orderproduct']['id'];
            $total_records = $total_records + 1;
 }
     if($total_records == 1)
     {  
     $html = <<<EOD
         $po; //and other html 
         EOD;
        $tcpdf->writeHTMLCell(0, 0, '', '', $html,'', 1, 0, true, '', true);
        echo $tcpdf->Output('filename.pdf', 'D');                                                   
    }
    else if($total_records > 1) 
    {
        foreach($POdata as $order)
        {   
                $po = $order['Orderproduct']['id'];
            $total_records = $total_records + 1;
            $html = <<<EOD
                   $po; //and other html 
            EOD;
            $tcpdf->writeHTMLCell(0, 0, '', '', $html,'', 1, 0, true, '', true);
           $filename = "PO".$poid.".pdf";
    echo $tcpdf->Output($filename, 'D');
            }
     }

从控制器文件到视图文件的数据正确进入$ POdata。 你能不能帮助我。

1 个答案:

答案 0 :(得分:0)

是的,我们可以做到

使用foreach()转发器对象,并根据该数据生成PDF并存储在某个位置,您可以创建每个文件的显示路径数组

将此数组传递给视图对象,您可以在视图文件中使用它,也可以将其设置为下载链接

由于