在.Net Micro Framework中顯示漢字(下)
重新編譯后,在模擬器中就能看到中文字體了,如下圖:
5.?dāng)U展?jié)h字文件
在前面的實(shí)驗(yàn)中,雖然正確的顯示出了漢字,但是也許有人會問,為什么fntdef文件中FN會是“宋體”呢,不是華文行楷么?事實(shí)上,當(dāng)你嘗試把FN從宋體改為其他名稱是,目前版本的TFConvert會在命令行中打印出一條錯誤信息:“Font cannot be found matching Selectfont descriptor Facename .Expected ‘??’,found ‘??’”。下面我們就來看看,如何解決這個問題,而達(dá)到正常顯示所有中文字體的目的。
首先,我們需要使用fontcreator工具來修改中文字體的“font name” 該工具大家可以在網(wǎng)上下載,這里簡單介紹下如何使用該工具來修改
A.使用fontcreator 工具打開選定的中文字體,如“微軟雅黑”
B.選擇菜單中“Format”,選擇“Naming”出現(xiàn)如下圖:
在“Platform”中選擇“Microsoft unicode BMP only”,在“Language”中選擇“Chinese-PRC”
注意其中的“Include font family name”、“Include unique font identifier” 和“Include full font name”選項(xiàng),由于該fontcreator工具沒有漢化,所有這些選項(xiàng)顯示都是字符而不是具體的中文字體的名稱
C.在上面的界面中在“Language”選擇“English-united states”出現(xiàn)如下圖:
同時(shí)注意其中的“Include font family name”、“Include unique font identifier” 和“Include full font name”選項(xiàng),這些選項(xiàng)都包含了“Microsoft YaHei”的字樣
D.開始修改:把C步驟中的“Microsoft YaHei”字樣內(nèi)容復(fù)制到B步驟中的相應(yīng)選項(xiàng)中,如下圖:
修改后按“ok”,并保存該字體。
E.同時(shí)修改.fntdef 中的內(nèi)容:
◆AddFontToProcess C:"SampleFonts"MSYH.ttf
◆SelectFont "WE:400,FN:Microsoft YaHei"
◆#import upper case letters
◆ImportRange 32 126
◆ImportRange 19968 40869
這樣你重新運(yùn)行Tfconvert工具進(jìn)行轉(zhuǎn)換的時(shí)候就不會出現(xiàn)如下的錯誤提示:
說明:上面所修改的選項(xiàng)中的內(nèi)容可以替換為MsYaHei ,或其他可以代表微軟雅黑字體的英文名稱都可以,同時(shí)你可以試著把這些選項(xiàng)的內(nèi)容替換為“宋體”,這樣你用Tfconvert進(jìn)行轉(zhuǎn)換的時(shí)候也不會出現(xiàn)錯誤提示。個人認(rèn)為在.Net Micro Framework 的中文字體轉(zhuǎn)換中目前只支持以中文“宋體”為face name(FN)的轉(zhuǎn)換,其他像微軟雅黑、華文細(xì)黑、幼圓為顯示名稱的中文字體,都要把名稱修改為英文名稱才能正常轉(zhuǎn)換。
下圖顯示的是經(jīng)過上述處理后的華文行楷字體:
參考資料:
http://blog.csdn.net/yefanqiu/archive/2007/11/01/1862300.aspx
【編輯推薦】