2014-01-31 106 views
3

我正在嘗試使用dompdf生成pdf。在CodeIgniter中使用DOMpdf生成PDF

<?php 

if (!defined('BASEPATH')) 
    exit('No direct script access allowed'); 

class Dompdf_test extends CI_Controller { 

    public function index() { 
     // Load all views as normal 
     //$this->load->view('phptopdfexample'); 
     $this->all_movements(); 
     // Get output html 
     $html = $this->output->get_output(); 

     // Load library 
     $this->load->library('dompdf_gen'); 

     // Convert to PDF 
     $this->dompdf->load_html($html); 

     $this->dompdf->render(); 
     $min = 1; 
     $max = 1000; 
     $name = rand($min, $max); 
     $this->dompdf->stream($name . '.pdf'); 
    } 

    public function all_movements() { 
     $data['stocks'] = $this->inventory->getdepartmentalmovements(); 
     $data['meds'] = $this->inventory->get_meds(); 

     $this->load->view('deptartmental_issue_pdf', $data); 
    } 

} 

當我運行該腳本,我得到了以下錯誤內部服務器錯誤:遇到 一個PHP錯誤

嚴重性:警告

消息:非法串偏移「十六進制」

文件名:包括/ style.cls.php

行號:1422

我該如何解決這個問題?

+0

一些如何或別人試圖使用字符串作爲數組。 style.cls.php的第1422行是什麼? – Justin

回答

4

此問題被固定在DOMPDF 0.6

,或者您可以通過在加入條件糾正:

DOMPDF /包括/ style.cls.php

然後搜索如果( is_null($ col))(可能是:Line 1422或其附近)

if (is_null($col)) 
$col = self::$_defaults["color"]; 
//see __set and __get, on all assignments clear cache, not needed on direct set through __set 
$this->_prop_cache["color"] = null; 
$this->_props["color"] = $col["hex"]; 
} 

也加上這個條件,試試。

if (is_array($col)) 
    $this->_props["color"] = $col["hex"];