我正在使用MPDF在codeigniter中生成pdf文件.
我的控制器功能看起来像
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();
}
Run Code Online (Sandbox Code Playgroud)
我的pdf图书馆是
<?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);
}
}
Run Code Online (Sandbox Code Playgroud)
我想从视图文件生成pdf文件section1.但是当我调用控制器功能时save_pdf,我得到的错误如下

当我print_r($html);exit;,它显示视图file.i中的所有内容preg_replace_callback而不是preg_replacein,mpdf/includes/functions.php但它仍然显示这样的错误

我研究了mpdf文档,它在普通的PHP中正常工作.但我想生成pdf文件Codeigniter.如何解决这样的错误mpdf?我会感激任何帮助,我可以pdf file使用mpdfin Codeigniter.谢谢.
Glu*_*ear 20
尝试用以下代码替换79行和80行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);
Run Code Online (Sandbox Code Playgroud)
资料来源:https://github.com/carlholmberg/mpdf/issues/1