生成多个pdf文件并压缩它

Posted

技术标签:

【中文标题】生成多个pdf文件并压缩它【英文标题】:generate multiple pdf file and zip it 【发布时间】: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 的文件路径。 【参考方案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 文件并下载它。我没有测试过,所以请忽略语法错误,但你会从中得到一个想法。

【讨论】:

以上是关于生成多个pdf文件并压缩它的主要内容,如果未能解决你的问题,请参考以下文章

Ruby on rails - 压缩和下载pdf文件

Python/Django - 我可以创建多个类似 pdf 文件的对象,将它们压缩并作为附件发送吗?

使用python将多页pdf文件拆分为多个pdf文件?

[多个双层pdf文件合并]什么是双层PDF?如何用高拍仪生成双层PDF文件?

ST MCU生成PDF+文件压缩解压

[pdf文件压缩]PDF文件压缩的方法是什么?哪个PDF文件压缩器好用?