繁体   English   中英

使用mPDF生成并保存多个pdf文件

[英]generate and save multiple pdf files using mPDF

我有一个代码可以使用mPDF库生成单个PDF文件。 但是,当我尝试一次生成2个pdf并尝试下载这些文件时,它不会生成第二个文件。

这是代码:

function download($id)
    {
        $this->load->library('m_pdf');

        // download annexC form
        $this->annexc($id);

        // download resident form
        $this->resident($id);
    }

function annexc($id)
    {
        $data1['udata'] = $this->general_model->getUserDetail($id);
        // mprd($data);
        $name1 = str_replace(' ', "-", strtolower($data1['name']));
        $time1 = time();
        $file_name1 = $name1.$time1.$id.'-Annexc-Form';
        $html1 = $this->load->view('annexc/form_download', $data1, true);
        $pdfFilePath1 = SAVE_PDF_ANNEXC.$file_name1.".pdf";
        $this->m_pdf->pdf->SetDisplayMode('fullpage');
        $this->m_pdf->pdf->WriteHTML($html1);
        $this->m_pdf->pdf->Output(SAVE_PDF_ANNEXC.$file_name1.".pdf", "F");
    }

    function resident($id)
    {
        $data['udata'] = $this->general_model->getUserDetail($id);
        $name = str_replace(' ', "-", strtolower($data['name']));
        $time = time();
        $file_name = $name.$time.$id.'-Residential-Form';
        $html = $this->load->view('resident/form_download', $data, true);
        $file_name = trim($file_name);
        $pdfFilePath = SAVE_PDF_RESIDENT.$file_name.".pdf";
        $this->m_pdf->pdf->SetDisplayMode('fullpage');
        $this->m_pdf->pdf->defaultfooterfontstyle='';
        $this->m_pdf->pdf->defaultfooterfontsize=12;
        $this->m_pdf->pdf->defaultfooterline=0;
        $this->m_pdf->pdf->setFooter('{PAGENO}');
        $this->m_pdf->pdf->WriteHTML($html);
        $this->m_pdf->pdf->Output($pdfFilePath, "F");
    }

当我调用download()时,它将成功创建annexc pdf,但是对于第二个resident(),它将创建具有与annexc表格相同的数据的pdf。 为什么这样? 我该怎么做?

谷歌搜索后,这是答案:

取消设置旧的HTML和mpdf对象并创建新的对象。

function download($id)
    {
        $data['udata'] = $this->general_model->getUserDetail($id);
        $time = time();
        ini_set('memory_limit','256M');
        $file_name_res = $time.$id.'-resident-form';
        $html = $this->load->view('resident/form_download', $data, true);
        $pdfFilePathRes = PDF_FILES.$file_name_res.".pdf";
        $this->load->library('m_pdf');
        $mpdf = new mPDF();
        $mpdf->SetDisplayMode('fullpage');
        $mpdf->defaultfooterfontstyle='';
        $mpdf->defaultfooterfontsize=12;
        $mpdf->defaultfooterline=0;
        $mpdf->setFooter('{PAGENO}');

        $mpdf->WriteHTML($html);
        $mpdf->Output($pdfFilePathRes, "F");

        unset($mpdf); // this is the magic
        unset($html); // this is the magic

        ini_set('memory_limit','256M');
        $file_name = $time.$id.'-annexc-form';
        $html = $this->load->view('annexc/form_download', $data, true);
        $pdfFilePath = PDF_FILES.$file_name.".pdf";
        $this->load->library('m_pdf');
        $mpdf = new mPDF();
        $mpdf->SetDisplayMode('fullpage');
        $mpdf->WriteHTML($html);
        $mpdf->Output($pdfFilePath, "F");        
    }

您正在调用相同的模型函数

$data['udata'] = $this->general_model->getUserDetail($id);

然后回显相同的结果但名称不同

$html1 = $this->load->view('annexc/form_download', $data1, true);
$html = $this->load->view('resident/form_download', $data, true);

即使视图的样式不同,您在两个视图上都将得到相同的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM