VtigerCRM Part Two 修改篇
->
話說上次我裝完VtigerCRM之後,很開心!
但開心沒多久我就發現,真的要上線使用還是有一段距離。
基本上問題都是與中文脫不了關係,很多時候用OpenSource的
軟體,中文真的是一個很頭痛的問題!
以VtigerCRM來說問題大致上有以下幾點
1. WebMail無法正確顯示中文
2. 圖表中文字無法正確顯示
3. 各模組轉存pdf時的中文亂碼或無法顯示
問題大致就以上三點,再來還有修改pdf的layout來符合自己的需求
接下來就一步一步來修正吧!
Q1:
WebMail無法正確顯示中文
A1:
修改
vtigercrm/modules/Webmails/functions.php
在第一行新增
$charset = 'utf-8';
註解以下此行
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 中新增
fireflysung,fireflysung.ttf
修改 include/utils/GraphUtils.php 第27行為
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
在命令提示字元底下執行
$ ttf2ufm.exe -a -F fireflysung.ttf
將產生的檔案上傳至
/var/www/html/vtigercrm/include/tcpdf/fonts/ttf2ufm
並在伺服器上執行以下命令
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 中新增一行如下
'Product Name' => '產品名稱',
中文記得要用utf-8編碼喔!
完成
最後如果想要修改pdf的layout的話,以下有一些我修改的過程給大家參考
修改BODY圓角
vtigercrm/include/tcpdf/pdf.php
第179行
$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行
$endpage="0"; //1開 0關
最後我放我的pdf圖片上來,希望大家VtigerCRM都可以使用愉快喔!
下篇在po增加Project模組的,或是大家也可以上VtigerCRM的Blog去找喔!
塗塗抹抹有點難看,請大家見諒囉!
相關文章




我的問題是在webmail的首頁,點選mail,標題都ok, 但是內文只能秀英文。
由於是測試site;方便幫我看一下嗎?
http://www.yesippbx.com/vtiger
admin/admin
scott
HELLO~
這應該就是第一個問題!
有試著照上面修改嗎~?
有, 不work
你好!
Q1 & Q2 okay, Q3我已按指示修改 vtigercrm/include/tcpdf 底下的 pdf.php tcpdf.php, 將 $this->SetFont 後面的字型名稱改為 fireflysung。但仍然沒法在pdf顯示中文字樣。可否給多一點提示如何更改pdf.php & tcpdf.php
Beeforce
Hello
pdf改中文的部份
除了字型要轉好以外
pdf.php tcpdf.php 這兩個檔案中的$this->SetFont
變數不只一個喔!每個地方的字型可以不一樣!
也可以向我一樣偷懶啦Search以後通通改fireflysung
呵呵︿︿
Devil你好!
多謝你的指示。我已依照指示及方法重新轉字型,在pdf.php內共轉换18項如下内容:
$this->SetFont(’fireflysung’,'B’,12);
$this->SetFont(’fireflysung’,”,10);
$this->SetFont( “fireflysung”, “B”, 15);
$this->SetFont( “fireflysung”, “B”, 10);
$this->SetFont( “fireflysung”, “”, 10);
……..
但在tcpdf.php內沒地方可更改,勉強更改
$this->SetFont(”, $style); 為
$this->SetFont(’fireflysung’, $style);
儲存後,依然沒法正確顯示中文。可否給予支援? 或是尚有其它檔案漏改。
Beeforce
嗯嗯~tcpdf.php裡面只有那一行可改沒錯
你看的到 Apache 的 error Log 嗎?
Devil 你好!
我失敗了,雖然我是新手,但依然心有不甘,不願放棄。
我是在XP平台安裝xampp Server的,昨天再按照你發佈的工作心得內兩编文章,重新安裝VtigerCrm 5.0.4及設定tcpdf中文字型。除了Q3的pdf中文依然乱碼外,其餘一切正常。
檢查Error log 得如下字樣
[Wed Jul 09 19:20:24 2008] [error] [client 127.0.0.1] File does not exist: C:/xampp/htdocs/vtigercrm/include/js/zh-tw.lang.js, referer: http://localhost/vtigercrm/index.php?action=DetailView&module=Invoice&record=89&parenttab=Inventory
[Wed Jul 09 19:20:24 2008] [error] [client 127.0.0.1] File does not exist: C:/xampp/htdocs/vtigercrm/jscalendar/lang/calendar-big5-utf8.js, referer: http://localhost/vtigercrm/index.php?action=DetailView&module=Invoice&record=89&parenttab=Inventory
英文pdf沒發生問題,請再給多一點支持!
Beeforce
我遇到的问题和Q3一样~~
请问还有什么档案漏改吗?
好像很多人都失敗囉…..有人成功嗎?
我最近要重做一次!我會在注意一下!
update in file include/tcpdf/tcpdf.php (version 5.0.4)
1.about line 760:
chage from
$this->FontFamily=”;
to
$this->FontFamily=’fireflysung’;
2. about line 1746:
chage from
$family=’freeserif’;
to
$family=’fireflysung’;
For this PDF issue, I didn’t update pdf.php/tcpdf.php setFont’s parametres.
大家好!
pdf中文顯示成功了,两頁pdf版面的file size 約7M.
我是依照Devil提供VtigerCrm 修改篇的指示及程序進行修改後,再按照hank的提示完成。多謝大家!
Beeforce
谢谢各位,参照指导已完成PDF转中文,非常感谢!!!!
为什么我按照上面的指导一点都不起作用呢?
折腾好几天了,是不是还有其他地方呢?
终于解决了呵呵,只不过只修改一处就可以
\include\tcpdf\tcpdf.php 1745行:
else
$family=’freeserif’;改为
else
$family=’fireflysung’;
THANKS EVERYONE!
謝謝您分享此方法
q1與q2經測試沒問題
q3連結只能下載tcpdf_4_4_007.zip版本
不知何處還可以下載tcpdf_3_0_004版?
原本vtiger裡面的tcpdf就可以作轉換的動作了
轉換為ufm似乎與tcpdf版本無關
使用google釋出的DroidSansFallback.ttf檔
目前轉出的pdf為1.9m
請問你的GOOGLE字型有做過以下這個步驟嗎?
php -q makefontuni.php XXXX.ttf XXXX.ufm
剛剛異想天開,結果發現另一個更快速的方法
1. 將轉好的三個檔案放到舊有的tcpdf\fonts目錄下
2. 修改檔名:
fireflysung.php–>FreeSerif.php(原來的FreeSerif.php要先備份喔)
另外兩個檔案名稱不變
轉出PDF目前看起來OK
但目前公司名稱還是方塊~WHY?
我依前面的資料提示去修改Quotes/language/zh-tw.lang.php,也儲存為UTF-8編碼
但是很奇怪的問題又出現了
例如右上方的報價單、客戶編號、頁次…都是方塊
但是:中間表格的中文又是正確的…難道不是在Quotes/language/zh-tw.lang.php修改?
我的PDF問題終於解決了
看了一下程式碼,1749行的 elseif(($family==”symbol”)
我將symbol也改成freeserif就可以了
請問Q1的問題
您說註解以下此行…..到底要怎麼註解呢?可否說明清楚一點
在Functions.php裡面總共有三行都是global $charset;
我該怎麼弄?
註解我是在那一行前面加雙斜線符號//
我這邊只註解第一個找到的,尚未發現問題
您試看看就知道了,反正先備份原始檔,有問題時再覆蓋回去就好了
Q3的問題
cd /var/www/html/vtigercrm/include/tcpdf/fonts/ttf2ufm
php -q makefontuni.php fireflysung.ttf fireflysung.ufm
這….可以執行嗎?
我使用後,不會產生.PHP,.Z,CTG.Z檔阿
我該怎麼弄?
我用的是windows版本(Appserv2.5.9),使用該語法執行轉換並無問題
內地網站(c3crm)的討論區有人放上了這幾個轉換檔案的下載連結
如果一直無法編譯出這三個檔..可以去找看看