如何在.Net Micro Framework中顯示漢字_.Net教程
推薦:解讀.net解決數(shù)據(jù)導(dǎo)出excel時(shí)的格式問(wèn)題在項(xiàng)目中一般都需要將報(bào)表數(shù)據(jù)導(dǎo)出到EXCEL中,但經(jīng)常出現(xiàn)導(dǎo)出長(zhǎng)串?dāng)?shù)據(jù)(如身份證)到EXCEL中后顯示為科學(xué)計(jì)數(shù)法的格式,或者報(bào)表中顯示為001的數(shù)據(jù)導(dǎo)出到Excel后成了1的格式。 下面簡(jiǎn)單介紹一下以上問(wèn)題的解決方法: 1、首先,了解一下excel從web頁(yè)面上導(dǎo)出的
MF平臺(tái)支持的字體是專(zhuān)有格式,擴(kuò)展名為tinyfnt,需要用專(zhuān)門(mén)的轉(zhuǎn)化工具才能把windows平臺(tái)上的字體轉(zhuǎn)換為tinyfnt字體。在.Net Micro Framework SDK中提供了一個(gè)叫做TFConvert.exe的工具,我們可以用它在命令行下將PC機(jī)上的TrueType或者OpenType字體文件生成tinyfnt字體,供.Net Micro Framework的應(yīng)用程序使用。使用TFconvert 工具進(jìn)行字體轉(zhuǎn)化,首先需要?jiǎng)?chuàng)建一個(gè).fntdef 的文件其是字體的定義文件,其實(shí)它就是一個(gè)是TEXT文本文件,但是以.fntdef結(jié)尾的。本文闡述了在.Net Micro Framework 中以PC機(jī)上的字體顯示漢字的步驟。
1.編輯.fntdef文件
先創(chuàng)建一個(gè)文本文檔(.txt),這里我們以華文行楷字體為例,故取名為hwxk.txt。這個(gè)文件就是我們用來(lái)配置導(dǎo)出字體的文件,我們?cè)谄渲刑砑右韵聝?nèi)容:
AddFontToProcess C:"WINDOWS"Fonts"STXINGKA.TTF
SelectFont "WE:400,HE:20,FN:宋體"
ImportRange 32 126
ImportRange 19968 40869
配置文件中常用的命令如下:
1)、AddFontToProcess
格式:AddFontToProcess path
說(shuō)明:填寫(xiě)中文字庫(kù)的路徑信息(字庫(kù)源的路徑,需要輸入絕對(duì)路徑),如果路徑里有空格,一定用引號(hào)括起來(lái),如示例所示:
AddFontToProcess C:"Windows"Fonts"Miramo.ttf
AddFontToProcess "C:""Program Files""Microsoft .NET Micro Framework""v2.0.3036""Tools""Fonts""TrueType""Miramo.ttf"
2)
3)
格式:ImportRange start end
說(shuō)明:這個(gè)比較重要,是指從字庫(kù)中導(dǎo)出字體的起始和結(jié)束位置,可以多個(gè)命令連用。
詳細(xì)的介紹在msdn上有相關(guān)說(shuō)明:ms-help://MS.VSCC.v80/MS.VSIPCC.v80/MSVS.PSDK/PSDK/PSDK_TF_Fntdef.htm
2. 打開(kāi)命令行工具
在桌面上點(diǎn)擊“開(kāi)始”à“運(yùn)行”à鍵入CMD,用cd指令導(dǎo)航到SDK的Tools文件夾下,利用dir命令,我們可以看到該目錄的內(nèi)容如圖:

3.使用TFConvert工具
我們假設(shè)在c盤(pán)下已經(jīng)創(chuàng)建了samplefonts的目錄,把TFconvert.exe 和hwxk.ttf (以華文行楷作為例子)復(fù)制到該目錄下,同時(shí)把剛才創(chuàng)建的.fntdef 如hwxk.fntdef 也復(fù)制到該目錄下。建議大家在windows xp下進(jìn)行這個(gè)工具的使用。
TFconvert 使用方法: TFconvert <input file> <output file>
Input file= 字體定義文件.fntdef,
output file =字體輸出文件 .tinyfnt
在dos 命令行下 切換到samplesfont 目錄下,輸入:
TFconvert c:"samplefonts"hwxk.fntdef c:"samplefonts"hwxk.tinyfnt
回車(chē)即可,這樣在該目錄下就有hwxk.tinyfnt 文件生成。當(dāng)然,這里的目錄也可以是你自定義的。
4.測(cè)試
在Visual Studio中新建一個(gè)Windows Application。首先雙擊Resources.resx,在出現(xiàn)的Tab頁(yè)中,我們將String1的內(nèi)容由“Hello World”改為你要顯示的漢語(yǔ),然后點(diǎn)擊左上角的String旁邊的小箭頭,選擇Files:
然后點(diǎn)擊旁邊的“Add Resouces”右邊的小箭頭,選擇“Add Existing File”,然后瀏覽到我們之前生成的tinyfnt所在文件目錄下。選擇hwxk.tinyfnt,將它添加到資源文件中。
然后我們打開(kāi)Program.cs,默認(rèn)生成的代碼中將:
text.Font = Resources.GetFont(Resources.FontResources.small);
改為:
text.Font = Resources.GetFont(Resources.FontResources.hwxk);
重新編譯后,在模擬器中就能看到中文字體了,如下圖:

5.?dāng)U展?jié)h字文件
在前面的實(shí)驗(yàn)中,雖然正確的顯示出了漢字,但是也許有人會(huì)問(wèn),為什么fntdef文件中FN會(huì)是“宋體”呢,不是華文行楷么?事實(shí)上,當(dāng)你嘗試把FN從宋體改為其他名稱(chēng)是,目前版本的TFConvert會(huì)在命令行中打印出一條錯(cuò)誤信息:“Font cannot be found matching Selectfont descriptor Facename .Expected ‘??’,found ‘??’”。下面我們就來(lái)看看,如何解決這個(gè)問(wèn)題,而達(dá)到正常顯示所有中文字體的目的。
首先,我們需要使用fontcreator工具來(lái)修改中文字體的“font name” 該工具大家可以在網(wǎng)上下載,這里簡(jiǎn)單介紹下如何使用該工具來(lái)修改
A、 使用fontcreator 工具打開(kāi)選定的中文字體,如“微軟雅黑”
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工具沒(méi)有漢化,所有這些選項(xiàng)顯示都是字符而不是具體的中文字體的名稱(chē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、 開(kāi)始修改:把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í)候就不會(huì)出現(xiàn)如下的錯(cuò)誤提示:

說(shuō)明:上面所修改的選項(xiàng)中的內(nèi)容可以替換為MsYaHei ,或其他可以代表微軟雅黑字體的英文名稱(chēng)都可以,同時(shí)你可以試著把這些選項(xiàng)的內(nèi)容替換為“宋體”,這樣你用Tfconvert進(jìn)行轉(zhuǎn)換的時(shí)候也不會(huì)出現(xiàn)錯(cuò)誤提示。個(gè)人認(rèn)為在.Net Micro Framework 的中文字體轉(zhuǎn)換中目前只支持以中文“宋體”為face name(FN)的轉(zhuǎn)換,其他像微軟雅黑、華文細(xì)黑、幼圓為顯示名稱(chēng)的中文字體,都要把名稱(chēng)修改為英文名稱(chēng)才能正常轉(zhuǎn)換。
下圖顯示的是經(jīng)過(guò)上述處理后的華文行楷字體:

格式:SelectFont "selectionstring"
說(shuō)明:參數(shù)比較多,常用的就下面幾個(gè),余下的請(qǐng)看msdn的相關(guān)文章。
WE(Weight)字體的厚重度,0~1000,標(biāo)準(zhǔn)的是400,粗體為700
FN(Face Name) 字體名稱(chēng),如果包含空格,要用引號(hào)括起來(lái)
HE(Height)字體大小(實(shí)際測(cè)試范圍1~36)
WI(Width)字體寬度(實(shí)際測(cè)試范圍1~12)
IT(Italic)設(shè)置字體的傾斜角度
UN(Underline)設(shè)置字體下面的下劃線
注意 這個(gè)命令是Select Font,也就是說(shuō),從字庫(kù)源中選擇出指定參數(shù)的字體,.Net Mirco Framework與.Net精簡(jiǎn)框架集和.Net框架集不同,它的字體的大小、加粗、斜體等等參數(shù)不能在程序中任意改變,你導(dǎo)出的是什么樣的字體,那就是什么字體,不能改變,一出生就決定命運(yùn)。例如你對(duì)同一個(gè)字符串顯示不同的大小,那么對(duì)應(yīng)每一個(gè)大小,都需要你導(dǎo)出一個(gè)字體庫(kù)。
分享:怎樣實(shí)現(xiàn).net程序的進(jìn)程注入進(jìn)程注入比較常見(jiàn),比如用IDE調(diào)試 程序 以及一些Spy程序,如果僅僅為了與調(diào)試器通訊,可以使用.net提供的Debugger接口(在EnvDTE.dll的EnvDTE命名空間下).但無(wú)論出于什么目的,進(jìn)程注入都是比較好玩的事情,所以不妨一試 . 進(jìn)程注入的 方法 貌似很多(比如像特洛伊
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶(hù)端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- 如何用VB.net實(shí)現(xiàn)sql數(shù)據(jù)庫(kù)的備份與恢復(fù)
- 揭秘10項(xiàng)必學(xué)的.NET技術(shù)
- FCKeditor 2.6在ASP.NET中的配置方法
- [JS.IntelliSense]VS2007(Orcas) So Cool
- 淺談ASP.NET的PHP執(zhí)行速度
- 基于.Net中的協(xié)變與逆變的深入分析
- 解決ASP.NET 2.0中CSS失效的問(wèn)題
- 怎樣使用ASP.Net加密Cookie
- 在asp.net 2.0 中使用的存儲(chǔ)過(guò)程解析
- 復(fù)雜ASP.NET服務(wù)器控件調(diào)整小技巧
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-如何在.Net Micro Framework中顯示漢字
。