VtigerCRM Part Two 修改篇
話說上次我裝完VtigerCRM之後,很開心!
但開心沒多久我就發現,真的要上線使用還是有一段距離。
基本上問題都是與中文脫不了關係,很多時候用OpenSource的
軟體,中文真的是一個很頭痛的問題!
以VtigerCRM來說問題大致上有以下幾點
1. WebMail無法正確顯示中文
2. 圖表中文字無法正確顯示
3. 各模組轉存pdf時的中文亂碼或無法顯示
問題大致就以上三點,再來還有修改pdf的layout來符合自己的需求
接下來就一步一步來修正吧!
Q1:
WebMail無法正確顯示中文
A1:
修改
1 | vtigercrm/modules/Webmails/functions.php |
在第一行新增
1 | $charset = 'utf-8'; |
註解以下此行
1 | global $charset; |
完成
Q2:
圖表中文字無法正確顯示
A2:
先下載螢火飛字型
http://www.study-area.org/apt/firefly-font/fireflysung-1.3.0.tar.gz
解壓縮後將 fireflysung.ttf 上傳至 vtigercrm/Image/Canvas/Fonts/ 底下
並在 vtigercrm/Image/Canvas/Fonts/fontmap.txt 中新增
1 | fireflysung,fireflysung.ttf |
修改 include/utils/GraphUtils.php 第27行為
1 | DEFINE("FF_FONT1",'fireflysung'); |
完成
Q3:
各模組轉存pdf時的中文亂碼或無法顯示
A3:
先下載 Tcpdf
http://sourceforge.net/project/showfiles.php?group_id=128076
我是在WINDOWS下做轉檔動作的,轉字型程式位置
tcpdf_3_0_004\tcpdf\fonts\ttf2ufm\ttf2ufm.exe
在命令提示字元底下執行
1 | $ ttf2ufm.exe -a -F fireflysung.ttf |
將產生的檔案上傳至
/var/www/html/vtigercrm/include/tcpdf/fonts/ttf2ufm
並在伺服器上執行以下命令
1 2 3 | cd /var/www/html/vtigercrm/include/tcpdf/fonts/ttf2ufm php -q makefontuni.php fireflysung.ttf fireflysung.ufm |
複製.php, .z and ctg.z 到
/var/www/html/vtigercrm/include/tcpdf/fonts/
修改 vtigercrm/include/tcpdf 底下的 pdf.php tcpdf.php
將 $this->SetFont 後面的字型名稱改為 fireflysung
到此已經可以轉出中文了,除了檔案很大這個問題,我沒辦法解決
如果有發現字出不來的,基本上應該是中文翻譯檔的問題
也就是沒有相對應的中文翻譯詞彙!
以 Quotes module 為例子,他的語言檔放在
vtigercrm/modules/Quotes/language/zh-tw.lang.php
然後我們看 vtigercrm/modules/Quotes/CreatePDF.php
以185行為例
$product_line[$j]["Product Name"] = $list_price[$i];
我們需要在 zh-tw.lang.php 中新增一行如下
1 | 'Product Name' => '產品名稱', |
中文記得要用utf-8編碼喔!
完成
最後如果想要修改pdf的layout的話,以下有一些我修改的過程給大家參考
修改BODY圓角
vtigercrm/include/tcpdf/pdf.php
第179行
1 | $this->RoundedRect($r1, $y1, ($r2 - $r1), $y2, 1(2.5,4.5), 'D'); //調整後面的數值 |
檔案位置
header
modules/Quotes/pdf_templates/header.php
body
include/tcpdf/templates/body.php
footer
modules/Quotes/pdf_templates/footer.php
關閉最後一頁(endpage)
vtigercrm/modules/Quotes/CreatePDF.php
第25行
1 | $endpage="0"; //1開 0關 |
最後我放我的pdf圖片上來,希望大家VtigerCRM都可以使用愉快喔!
下篇在po增加Project模組的,或是大家也可以上VtigerCRM的Blog去找喔!
塗塗抹抹有點難看,請大家見諒囉!

vtigercrm pdf中文化 5.1.0 rc版
pdf中文化方式
下載fireflysung.gz檔案,解壓後,產生fireflysung.ttf檔,放入tcpdf\fonts\ttf2ufm目錄下
執行
ttf2ufm -a -F fireflysung.ttf
執行
php -q makefont.php fireflysung.ttf fireflysung.ufm
copy 產生出來的檔案到TCPDF\fonts目錄下
複製fireflysung.php 成為fireflysungb.php, fireflysungi.php, fireflysungbi.php
修改
Tcpdf.php 將$family字型修改為 $family = ‘fireflysung’;約在-2552行 及2545行即可
其實在5.1.0 rc版本中TCPDF\fonts\utils下有一個英文版readme.txt,解釋還算清楚,這個檔案也是在tcpdf.php 的header中提到的,各位可以參考
5.1.0 rc版,中文化的差不多了,發覺一件事,就是那些中文的對照檔有點亂,看起來vtiger有成立一個project 要調整各國語言版的對照方式,應該是可以期待的