2016-02-13 89 views
-1

我正在使用mPDF和Codeigniter創建PDF文件。添加頁碼時出現問題。 我有一些通過數據庫查詢生成的結果集,我將它們傳遞給我的html文件來顯示該數據。根據它創建的結果數量並將其轉換爲帶有頁數的pdf格式。問題是,當它生成多個頁面時,我無法添加頁碼。 我正在使用此操作的基本示例。 請幫助我!動態生成頁面的頁碼在mPDF

我的控制器代碼

$result_1 = $this->Vessel_model->getManifestVesselDetails($vesselId,$containerId); 
$result_2 = $this->Vessel_model->getVesselDetailsByContainer($vesselId,$containerId); 
$result_3 = $this->Vessel_model->getDDByVesselContainer($vesselId,$containerId); 

$data['agentDetails'] = $this->Vessel_model->getShippingAgents();   
$data['DD_SDNumber'] = $this->DD_SDNumber; 
$data['DDdetails'] = $result_3; 
$data['containerDetails'] = $result_2; 
$data['vesselcontainerDetails'] = $result_1; 

$html = $this->load->view('reports/tri_shipping_manifest_PDF', $data, true); 
//this the the PDF filename that user will get to download 
$pdfFilePath = APPPATH.'/'.date('Y-m-d').$result_1->vessel.'-'.$result_1->serialno.".pdf"; 
$pdfFilePath3 = date('Y-m-d').$result_1->vessel.'-'.$result_1->serialno.".pdf"; 

$this->load->library('pdfreports'); 
$this->pdf = $this->pdfreports->load(); 
//$this->pdf->setFooter('{PAGENO}'); 
$this->pdf->AddPage('L','',1,'i','on'); 
$this->pdf->WriteHTML($html,0); 
$this->pdf->Output($pdfFilePath3, "D"); 
$this->pdf->Output($pdfFilePath, "F"); 
+0

告訴我們你對生成multiplage PDF –

+0

我添加的代碼的代碼。 – Kali

+0

你能否也請添加鏈接到這個基本的例子? –

回答

0

我不知道應該怎麼代碼目前的樣子,因爲我不知道很多關於MPDF,但我會建議你使用與笨DOMPDF,因爲是多這個庫更簡單。 你可以找到domPdf here

因爲我們不知道什麼是輸出這些變量,應該怎麼在PDF打印出來,我只能建議與DOMPDF

創建創建了一些一般的代碼助手:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 
    function pdf_create($html, $filename='', $stream=TRUE){ 
     require_once("dompdf/dompdf_config.inc.php");   
     $dompdf = new DOMPDF(); 
     $dompdf->load_html($html); 
     $dompdf->render(); 
     $dompdf->set_paper("A4"); 
     if ($stream) { 
     $dompdf->stream($filename.".pdf",1); 
     } else { 
     return $dompdf->output(); 
     } 
    } 
?> 

爲PDF

<?php 
    $data['store']=$res; 
    $this->load->helper(array('dompdf', 'file')); 
    $html = $this->load->view('store/sales_pdf', $data, true); 
    $html.= $this->load->view('footer'); 
    $filename="salesbill".$id; 
    pdf_create($html, $filename); 
    $data = pdf_create($html, '', false); 
    write_file('name', $data); 
?> 

創建控制器和您的PDF HTML會是這個樣子

<html> 
    <head> 
    <style> 
    @page { margin: 180px 50px; } 
    #header { position: fixed; left: 0px; top: -180px; right: 0px; height: 150px; background-color: orange; text-align: center; } 
    #footer { position: fixed; left: 0px; bottom: -180px; right: 0px; height: 150px; background-color: lightblue; } 
    #footer .page:after { content: counter(page, upper-roman); } 
    </style> 
    <body> 
    <div id="header"> 
    <h1>Widgets Express</h1> 
    </div> 
    <div id="footer"> 
    <p class="page">Page <?php $PAGE_NUM ?></p> 
    </div> 
    <div id="content"> 
    <p>the first page</p> 
    <p style="page-break-before: always;">the second page</p> 
    </div> 
</body> 
</html> 

這個答案是基於this stackoverflow question 另外這裏是不錯的DOMPDF debug helper page 我希望這個答案可以幫助你