|
Net Micro Framework研究—中文显示 作者:yefan 文章来源:yefan 点击数:321 更新时间:2007-12-8 微软示例程序中,仅支持两种字体(small.tinyfnt和NinaB.tinyfnt),并不支持中文。 翁祖泉老师在《如何在Microsoft .NET Micro Framework 的应用程序中添加中文字体?》的文章 中,写了如何添加字体的方法,正如他文章所写,这是一篇介绍在.NET Micro Framework 应用程序中使用中文字体的初级入门文章。所以我觉得有必要再深入研究一下。上篇文章的链接:http://www.winbile.net/Detail.aspx?D=260,1118125,855,127 在看我的文章之前,一定先看看这篇文章,我写的内容只是这篇文章的一个补充。
MF平台支持的字体是专有格式,扩展名为tinyfnt,需要用专门的转化工具才能把windows平台上的字体转换为tinyfnt字体。
转换工具在MF SDK开发包中就有,安装后的位置为:C:\Program Files\Microsoft .NET Micro Framework\v2.0.3036\Tools\TFConvert.exe
要转换字体,需要三个条件:第一,转换工具,这个我们已经有了;第二,中文字库,直接在C:\WINDOWS\Fonts目录中选一个你需要转换的字体即可;第三,转换用的配置文件(扩展名为fntdef的文件),这个比较麻烦,我着重说一下。
配置文件中常用的命令如下:
1、AddFontToProcess
格式:AddFontToProcess path
说明:填写中文字库的路径信息(字库源的路径,需要输入绝对路径),如果路径里有空格,一定用引号括起来,如示例所示:
AddFontToProcess C:\Windows\Fonts\Miramo.ttf AddFontToProcess "C:\\Program Files\\Microsoft .NET Micro Framework\\v2.0.3036\\Tools\\Fonts\\TrueType\\Miramo.ttf" 2、SelectFont 格式:SelectFont "selectionstring"
说明:参数比较多,常用的就下面几个,余下的请看msdn的相关文章。
WE(Weight)字体的厚重度,0~1000,标准的是400,粗体为700
FN(Face Name) 字体名称,如果包含空格,要用引号括起来
HE(Height)字体大小(实际测试范围1~36)
WI(Width)字体宽度(实际测试范围1~12)
IT(Italic)设置字体的倾斜角度
UN(Underline)设置字体下面的下划线
注意这个命令是Select Font,也就是说,从字库源中选择出指定参数的字体,.Net Mirco Framework与.Net精简框架集和.Net框架集不同,它的字体的大小、加粗、斜体等等参数不能在程序中任意改变,你导出的是什么样的字体,那就是什么字体,不能改变,一出生就决定命运。例如你对同一个字符串显示不同的大小,那么对应每一个大小,都需要你导出一个字体库。 3、ImportRange 格式:ImportRange start end
说明:这个比较重要,是指从字库中导出字体的起始和结束位置,可以多个命令连用。
详细的介绍在msdn上有相关说明(很可惜是英文的):ms-help://MS.VSCC.v80/MS.VSIPCC.v80/MSVS.PSDK/PSDK/PSDK_TF_Fntdef.htm
配置文件内容示例:
AddFontToProcess C:\SampleFonts\MSYH.ttf SelectFont "WE:400,FN:宋体" ImportRange 19968 40869
注意上面的示例文件仅导出了常用的汉字,如果你用该字体显示中英文混合的字符串,你会发现其它字体全部
|