2016-12-12 109 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");   
    }