2016-12-12 73 views
0

我有一个代码可以使用mPDF库生成单个PDF文件。但是,当我一次尝试生成2个PDF文件并尝试下载这些文件时,它不会生成第二个文件。使用mPDF生成并保存多个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"); 
    } 

当我打电话下载(),那么它会成功创建annexc PDF但对于第二个居民(),它会创造出具有相同annexc表单数据的PDF文件。为什么这样?我应该做什么改变?

回答

0

你调用同一型号的功能

$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); 

即使意见不同的风格,你会得到相同的结果都。

+0

那么有什么可以解决的?我应该叫它一次吗? –

0

下面是谷歌搜索后回答:

取消设置旧的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");   
    }