【问题标题】:generate multiple pdf file and zip it生成多个pdf文件并压缩它
【发布时间】:2018-03-13 09:00:52
【问题描述】:

我有一种情况,比如创建多个 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 文件存储在数组中??

【问题讨论】:

  • 您可以通过为Output 方法提供放置位置来将PDF 保存到文件中。然后将文件添加到 zip 中?
  • @JonStirling 感谢您的回答,但是如何通过循环保存多个 pdf 文件??
  • 你已经在这样做了,只是没有保存它们,只是确保为每个文件指定一个唯一的名称。
  • @JonStirling 我尝试了你所说的,但它创建了唯一的单个文件 $mpdf->Output($d->invoice_id, \Mpdf\Output\Destination::DOWNLOAD);
  • 为什么加\Mpdf\Output\Destination::DOWNLOAD!?您需要在本地文件系统上将其添加到 zip。您还应该将一些 zip 功能移出循环,下载应该在循环之后,其余的应该在之前,然后 `add_data 与您生成的 pdf 的文件路径。

标签: php codeigniter zip mpdf


【解决方案1】:

试试这个代码。

$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 文件并下载它。我没有测试过,所以请忽略语法错误,但你会从中得到一个想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 2017-01-02
    • 2010-12-19
    • 2021-03-26
    相关资源
    最近更新 更多