2015-04-03 10 views
5

Używam MPDF do generowania plików pdf w codeigniter.Błąd mpdf - preg_replace(): Modyfikator/e jest przestarzały, użyj preg_replace_callback zamiast

moja funkcja kontroler wyglądać

function save_pdf($std_id) 
    { 
    $data['section1_report']= $this->common_model->get_details('tbl_section1',array('id'=>$std_id)); 
    $html = $this->load->view('reports/section1',$data,true); 
     // print_r($html);exit; 
    $this->load->library('pdf'); 
    $pdf = $this->pdf->load(); 
    $pdf->WriteHTML($html); 
    $pdf->Output(); 
} 

moim pdf biblioteki jest

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 
    class pdf {  
     function pdf() 
     { 
     $CI = & get_instance(); 
     log_message('Debug', 'mPDF class is loaded.'); 
     } 

    function load($param=NULL) 
    { 
     include_once APPPATH.'/mpdf/mpdf.php';   
     if ($params == NULL) 
     { 
      $param = '"en-GB-x","A4","","",10,10,10,10,6,3';   
     }   
     return new mPDF($param); 
    } 
    } 

chcę, aby wygenerować plik PDF z pliku widoku section1. ale kiedy wywołać funkcję kontrolera save_pdf, mam błędy jak poniżej

enter image description here

kiedy print_r($html);exit;, wyświetla wszystkie treści z punktu widzenia file.i wykorzystywane preg_replace_callback zamiast preg_replace w mpdf/includes/functions.php ale nadal pokazuje błąd jak ten

enter image description here

i badali dokumentację mpdf i wszystko działa poprawnie w zwykłym php. ale chcę wygenerować plik PDF w Codeigniter. jak rozwiązać takie błędy w mpdf? Byłbym wdzięczny za pomoc, gdzie mogę wygenerować pdf file przy użyciu mpdf w Codeigniter. Dziękuję Ci.

+1

Po prostu wyszukałem "MPDF z Codeigniter", spróbuj na przykład https://davidsimpson.me/2013/05/19/using-mpdf-with-codeigniter/ – Vickel

Odpowiedz

16

spróbować wymienić linie 79 i 80 z functions.php z tego:

$str = preg_replace_callback('/\&\#([0-9]+)\;/m', function($m) use ($lo){return code2utf($m[1],$lo); }, $str); 
$str = preg_replace_callback('/\&\#x([0-9a-fA-F]+)\;/m', function($m) use ($lo){return codeHex2utf($m[1],$lo);}, $str); 

Źródło: https://github.com/carlholmberg/mpdf/issues/1

0

Wymieniłem te linie:

$str = preg_replace('/\&\#([0-9]+)\;/me', "code2utf('\\1',{$lo})",$str); 
    $str = preg_replace('/\&\#x([0-9a-fA-F]+)\;/me', "codeHex2utf('\\1',{$lo})",$str); 

z tych linii:

$str = preg_replace_callback('/\&\#([0-9]+)\;/m', function($m) use ($lo){return code2utf($m[1],$lo); }, $str); 
    $str = preg_replace_callback('/\&\#x([0-9a-fA-F]+)\;/m', function($m) use ($lo){return codeHex2utf($m[1],$lo);}, $str); 

i działało poprawnie.

0
$str = preg_replace('/\&\#([0-9]+)\;/me', "code2utf('\\1',{$lo})",$str); 
$str = preg_replace('/\&\#x([0-9a-fA-F]+)\;/me', "codeHex2utf('\\1',{$lo})",$str); 
// Remove above and add below code in includes/functions.php 
$str = preg_replace_callback('/\&\#([0-9]+)\;/m', function($m) use ($lo){return code2utf($m[1],$lo); }, $str); 
$str = preg_replace_callback('/\&\#x([0-9a-fA-F]+)\;/m', function($m) use ($lo){return codeHex2utf($m[1],$lo);}, $str); 

// Also comment below line in mpdf.php 
$html = preg_replace('/\{DATE\s+(.*?)\}/e',"date('\\1')",$html); 
Powiązane problemy