6月 05

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去找喔!

VtigerCRM  Blog

Quotes

 塗塗抹抹有點難看,請大家見諒囉!

 

相關文章



Trackback URI

26 篇回覆

Comment 由 mail body中文
2008-06-29 10:59:12

我的問題是在webmail的首頁,點選mail,標題都ok, 但是內文只能秀英文。

由於是測試site;方便幫我看一下嗎?

http://www.yesippbx.com/vtiger
admin/admin

scott

 
Comment 由 Devil
2008-06-29 15:56:59

HELLO~

這應該就是第一個問題!

有試著照上面修改嗎~?

 
Comment 由 scott
2008-07-01 19:33:14

有, 不work

 
Comment 由 Q3按指示完成仍不能顯示中文
2008-07-07 16:43:11

你好!
Q1 & Q2 okay, Q3我已按指示修改 vtigercrm/include/tcpdf 底下的 pdf.php tcpdf.php, 將 $this->SetFont 後面的字型名稱改為 fireflysung。但仍然沒法在pdf顯示中文字樣。可否給多一點提示如何更改pdf.php & tcpdf.php

Beeforce

 
Comment 由 Devil
2008-07-07 23:43:47

Hello

pdf改中文的部份

除了字型要轉好以外

pdf.php tcpdf.php 這兩個檔案中的$this->SetFont

變數不只一個喔!每個地方的字型可以不一樣!

也可以向我一樣偷懶啦Search以後通通改fireflysung

呵呵︿︿

 
Comment 由 Q3按指示完成仍不能顯示中文
2008-07-08 11:00:35

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

 
Comment 由 Devil
2008-07-08 14:16:25

嗯嗯~tcpdf.php裡面只有那一行可改沒錯

你看的到 Apache 的 error Log 嗎?

 
Comment 由 Q3按指示完成仍不能顯示中文
2008-07-09 19:47:08

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

 
Comment 由 sos:Q3按指示操作仍不能顯示中文
2008-07-10 20:33:04

我遇到的问题和Q3一样~~
请问还有什么档案漏改吗?

Comment 由 David
2008-07-18 15:08:58

好像很多人都失敗囉…..有人成功嗎?

我最近要重做一次!我會在注意一下!

 
 
Comment 由 hank
2008-08-02 01:37:52

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.

 
Comment 由 Q3按指示完成仍不能顯示中文
2008-08-02 11:35:47

大家好!

pdf中文顯示成功了,两頁pdf版面的file size 約7M.
我是依照Devil提供VtigerCrm 修改篇的指示及程序進行修改後,再按照hank的提示完成。多謝大家!

Beeforce

 
Comment 由 David Chu
2008-08-14 18:51:49

谢谢各位,参照指导已完成PDF转中文,非常感谢!!!!

 
Comment 由 eagle
2008-10-16 16:32:37

为什么我按照上面的指导一点都不起作用呢?

 
Comment 由 eagle
2008-10-16 16:36:12

折腾好几天了,是不是还有其他地方呢?

 
Comment 由 eagle
2008-10-20 14:09:47

终于解决了呵呵,只不过只修改一处就可以
\include\tcpdf\tcpdf.php 1745行:

else
$family=’freeserif’;改为

else
$family=’fireflysung’;

THANKS EVERYONE!

 
Comment 由 Mingway
2008-12-24 15:48:03

謝謝您分享此方法
q1與q2經測試沒問題
q3連結只能下載tcpdf_4_4_007.zip版本

不知何處還可以下載tcpdf_3_0_004版?

Comment 由 Mingway
2008-12-25 15:10:04

原本vtiger裡面的tcpdf就可以作轉換的動作了
轉換為ufm似乎與tcpdf版本無關
使用google釋出的DroidSansFallback.ttf檔
目前轉出的pdf為1.9m

Comment 由 WJZ
2008-12-31 11:04:28

請問你的GOOGLE字型有做過以下這個步驟嗎?
php -q makefontuni.php XXXX.ttf XXXX.ufm

(Comments wont nest below this level)
 
 
 
Comment 由 Mingway
2008-12-24 16:11:34

剛剛異想天開,結果發現另一個更快速的方法
1. 將轉好的三個檔案放到舊有的tcpdf\fonts目錄下
2. 修改檔名:
fireflysung.php–>FreeSerif.php(原來的FreeSerif.php要先備份喔)
另外兩個檔案名稱不變

轉出PDF目前看起來OK
但目前公司名稱還是方塊~WHY?

 
Comment 由 Mingway
2008-12-24 17:27:32

我依前面的資料提示去修改Quotes/language/zh-tw.lang.php,也儲存為UTF-8編碼
但是很奇怪的問題又出現了
例如右上方的報價單、客戶編號、頁次…都是方塊
但是:中間表格的中文又是正確的…難道不是在Quotes/language/zh-tw.lang.php修改?

 
Comment 由 Mingway
2008-12-26 12:03:45

我的PDF問題終於解決了
看了一下程式碼,1749行的 elseif(($family==”symbol”)
我將symbol也改成freeserif就可以了

 
Comment 由 不董
2008-12-31 16:26:53

請問Q1的問題

您說註解以下此行…..到底要怎麼註解呢?可否說明清楚一點

在Functions.php裡面總共有三行都是global $charset;

我該怎麼弄?

 
Comment 由 mingway
2009-01-03 00:35:43

註解我是在那一行前面加雙斜線符號//
我這邊只註解第一個找到的,尚未發現問題

您試看看就知道了,反正先備份原始檔,有問題時再覆蓋回去就好了

 
Comment 由 不董
2009-01-03 15:06:41

Q3的問題

cd /var/www/html/vtigercrm/include/tcpdf/fonts/ttf2ufm

php -q makefontuni.php fireflysung.ttf fireflysung.ufm

這….可以執行嗎?

我使用後,不會產生.PHP,.Z,CTG.Z檔阿

我該怎麼弄?

Comment 由 mingway
2009-01-06 00:17:03

我用的是windows版本(Appserv2.5.9),使用該語法執行轉換並無問題

內地網站(c3crm)的討論區有人放上了這幾個轉換檔案的下載連結
如果一直無法編譯出這三個檔..可以去找看看

 
 
名稱
信箱
網站
您的回覆 (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> in your comment.

Trackback responses to this post