生成多个pdf文件并压缩它

时间:2018-03-13 09:00:53

标签: php codeigniter zip mpdf

我有一种情况,比如创建多个pdf文件并下载为zip文件。

我尝试使用以下代码

    function downloadZip()
    {
      if ($this->input->post('btn_submit')) 
      {

        $data = array(
             'results' => $this->Mdi_download_invoices->download_pdf_files($this->input->post('client_id'))
        );

        foreach ($data['results'] as $d)
        {
             $mpdf = new \Mpdf\Mpdf();
             $html = $this->load->view('download_all_invoices/pdf',$d,true);
             $mpdf->WriteHTML($html);
             $mpdf->Output(); //this will create a pdf file in next tab

             $this->load->library('zip');
             $this->zip->add_data();
             $this->zip->archive('/var/www/my_backup.zip');
             $this->zip->download('my_backup.zip');
        }
    }

如何将所有pdf文件存储在数组中?

1 个答案:

答案 0 :(得分:0)

试试这段代码。

$i = 0;
foreach ($data['results'] as $d)
        {
             $mpdf = new \Mpdf\Mpdf();
             $html = $this->load->view('download_all_invoices/pdf',$d,true);
             $mpdf->WriteHTML($html);
             $mpdf->Output(); //this will create a pdf file in next tab

             $this->zip->add_data('file-'.$i.'.pdf',$d); 
             $i++;
        }

             $this->zip->archive('/var/www/my_backup.zip');
             $this->zip->download('my_backup.zip');

通过这个你可以在Zip中添加每个PDF文件,在循环之后你可以生成一个zip文件并下载它。我没有测试过,所以请忽略语法错误,但你会从中得到一个想法。