codeIgniter with tcpdf , Integration 

tcpdf 是一套在php上很完整與活躍的開放原始碼程式,用於產生pdf函式庫,當要和codeIgniter搭配時好像沒那麼容易,需要有一個可直接連接的網址,官方wiki上有人寫了一個連接器,做了完整的接合,與設定的說明,

http://codeigniter.com/wiki/TCPDF-CodeIgniter_Integration/ 

但是裝上去以後發生了這個錯誤訊息,

Use of undefined constant K_CELL_HEIGHT_RATIO – assumed ‘K_CELL_HEIGHT_RATIO’

後來在這篇看到解決方案,http://codeigniter.com/forums/viewthread/133243/#661005

主要是這這回覆提出的,

I’ve seen this problem too, and I adjusted the tcpdf.php file around line 948 (version 4.6.013):

protected $cell_height_ratio = 1.25; //K_CELL_HEIGHT_RATIO;

So I just hardcoded the value 1.25 – got the value from tcpdf_config.php.

仔細追蹤後發現,為什麼會出現這個問題呢?

因為聯接器裡面主要在做的事就是重新定義他的config檔,放在codeIgniter的configs資料夾下,然後透過lib內的檔案將參數讀進來並設定初始化,在某個的tcpdf版本下可能可行,在5.3版下就發生了這個錯誤訊息,主要是因為常數集的定義順序,被這一行給破壞了,

protected $cell_height_ratio = K_CELL_HEIGHT_RATIO;

他寫在不是建構子的地方,所以定義常數時來不及在這個常數使用之前,所以我決定不改變原始程式碼,在lib內物件繼承上方寫上 define(‘K_CELL_HEIGHT_RATIO’, 1.25); 在較不破壞的情況下解決這個問題。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *