2016-08-24 18 views
5

Tôi đang sử dụng thư viện HTML2PDF trong codeigniter.I đang cố gắng tạo pdf hàng loạt bằng cách sử dụng nó.thế hệ pdf số lượng lớn với html2pdf trong codeigniter

Trong đó tôi đang phải đối mặt với vấn đề như cùng một nội dung trong mỗi pdf hoặc pdf không có content.I đã làm homework.Yeah của tôi, nhưng có phải lúc nào cũng thể hiện hoàn hảo cho tạo pdf đầu tiên (Đối với tài khoản: 3)

Theo tôi có phải là vấn đề bên dưới mã:

ob_start(); 
    require_once($template_config.'template.php'); // 
    $content = ob_get_contents(); 
    ob_clean(); 

vấn đề: nó hoạt động cho lần đầu tiên nhưng đối với lần thứ hai nó tuôn tất cả các nội dung của biến nội dung và do đó trùng lặp PDF hoặc không có nội dung PDF tạo ra.

Tôi đã cố gắng như dưới đây

1) tạo đối tượng trong generatetemplate.php và chuyển cho common.php

2) thử với include_once // nhận cùng conent trong mọi pdf và nếu tôi đang làm vang sau đó không hiển thị nội dung nào cho pdf thứ 2 và thứ 3

File structure : 
    application 
     controllers 
      generatetemplate.php 
     libraries 
      common.php 
      html2pdf 
       html2pdf.php 
     template.php 


common.php : 

function print_content($customerdata){ 
    $this->load->library('/html2pdf/html2pdf'); 
    $template_config=$this->config->item('template'); 
    ob_start(); 
    require_once($template_config.'template.php'); // 
    $content = ob_get_contents(); 
    ob_clean(); 
    $content = str_replace("<CUSTOMER_ADDRESS>",$CUSTOMER_ADDRESS,$content); 
    $this->CI->html2pdf->pdf->SetDisplayMode('fullpage'); 
    $this->CI->html2pdf->writeHTML($content); 
    $this->CI->html2pdf->Output($download_path,"F"); 
} 

generatetemplate.php 
    function __construct() { 
     parent::__construct(); 
     $this->load->library("common"); 
     $this->load->library('html2pdf'); 
    } 
    function get_customer_data(){ 
     $this->db->order_by("id","DESC"); 
     $this->db->where('id IN (1,2,3)'); 
     $query = $this->db->get("customers")->result_array(); 
     foreach($query as $key=>$accountdata){ 
     $this->common->print_content($accountdata); 
     } 
    } 

Bất kỳ trợ giúp và ý tưởng nào sẽ được đánh giá cao.

+0

Có vẻ như, có thể, bạn đang tải 'thư viện html2pdf' hai lần (ví dụ: trong 'generatetemplate.php' và trong' common.php')? – Tpojka

+0

hav một cái nhìn trong http://stackoverflow.com/questions/32225465/multiple-pdf-files-with-html2pdf –

+0

@safinchacko yeah tôi đã thử rằng một đã nhưng không làm việc –

Trả lời

0

Tôi đã thử mã dưới đây và công việc của nó cho tôi.

common.php

function print_content($customerdata){ 
    $this->load->library('/html2pdf/html2pdf'); 
    $template_config=$this->config->item('template'); 
    ob_start(); 
    require_once($template_config.'template.php'); // 
    $content = ob_get_contents(); 
    ob_clean(); 
    $content = str_replace("<CUSTOMER_ADDRESS>",$CUSTOMER_ADDRESS,$content); 
    $this->CI->html2pdf = new HTML2PDF('P','A4','en'); // Just added this line and its work for me. 
    $this->CI->html2pdf->pdf->SetDisplayMode('fullpage'); 
    $this->CI->html2pdf->writeHTML($content); 
    $this->CI->html2pdf->Output($download_path,"F"); 
} 
Các vấn đề liên quan