在.Net Micro Framework中显示汉字(上)

开发 后端
MF平台支持的字体是专有格式,扩展名为tinyfnt,需要用专门的转化工具才能把windows平台上的字体转换为tinyfnt字体。在.Net Micro Framework SDK中提供了一个叫做TFConvert.exe的工具,我们可以用它在命令行下将PC机上的TrueType或者OpenType字体文件生成tinyfnt字体,供.Net Micro Framework的应用程序使用。使用TFconvert 工具进行字体转化,首先需要创建一个.fntdef 的文件其是字体的定义文件,其实它就是一个是TEXT文本文件,但是以.fntdef结尾的。本文阐述了在.Net Micro Framework 中以PC机上的字体显示汉字的步骤。

1.编辑.fntdef文件

先创建一个文本文档(.txt),这里我们以华文行楷字体为例,故取名为hwxk.txt。这个文件就是我们用来配置导出字体的文件,我们在其中添加以下内容:
◆AddFontToProcess C:"WINDOWS"Fonts"STXINGKA.TTF
◆SelectFont "WE:400,HE:20,FN:宋体"
◆ImportRange 32 126
◆ImportRange 19968 40869

配置文件中常用的命令如下:

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

2. 打开命令行工具

在桌面上点击“开始”à“运行”à键入CMD,用cd指令导航到SDK的Tools文件夹下,利用dir命令,我们可以看到该目录的内容如图:

用cd指令导航到SDK的Tools文件夹下

 

3.使用TFConvert工具

我们假设在c盘下已经创建了samplefonts的目录,把TFconvert.exe 和hwxk.ttf (以华文行楷作为例子)复制到该目录下,同时把刚才创建的.fntdef 如hwxk.fntdef 也复制到该目录下。建议大家在windows xp下进行这个工具的使用。
◆TFconvert 使用方法: TFconvert < input file> < output file>
◆Input file= 字体定义文件.fntdef,
◆output file =字体输出文件 .tinyfnt

在dos 命令行下 切换到samplesfont 目录下,输入:TFconvert c:"samplefonts"hwxk.fntdef c:"samplefonts"hwxk.tinyfnt回车即可,这样在该目录下就有hwxk.tinyfnt 文件生成。当然,这里的目录也可以是你自定义的。

4.测试

在Visual Studio中新建一个Windows Application。首先双击Resources.resx,在出现的Tab页中,我们将String1的内容由“Hello World”改为你要显示的汉语,然后点击左上角的String旁边的小箭头,选择Files:

在Visual Studio中新建一个Windows Application


然后点击旁边的“Add Resouces”右边的小箭头,选择“Add Existing File”,然后浏览到我们之前生成的tinyfnt所在文件目录下。选择hwxk.tinyfnt,将它添加到资源文件中。

然后我们打开Program.cs,默认生成的代码中将:

  1. text.Font = Resources.GetFont(Resources.FontResources.small); 

改为:

  1. text.Font = Resources.GetFont(Resources.FontResources.hwxk); 

【编辑推荐】

  1. .Net Micro Framework中的Shapes命名空间
  2. 浅谈.NET Micro Framework性能优化
  3. .Net Micro Framework线程技术详解
  4. 详解.Net Micro Framework中的TCP/IP通信
  5. 在.Net Micro Framework中访问硬件
责任编辑:佚名 来源: 博客园
相关推荐

2009-07-17 13:56:44

.Net Micro

2009-07-16 15:02:33

Shapes命名空间Net Micro F

2009-06-29 10:19:42

.NET Micro性能优化

2009-07-09 09:28:19

.Net Micro

2009-11-17 10:29:39

.NET Micro

2010-10-08 17:03:59

.NET Micro Visual Stud

2009-05-11 09:24:53

微软.Net Micro 源代码

2009-07-17 14:51:22

.Net Micro

2009-07-17 13:35:12

IO模拟器研究.Net Micro

2009-07-17 14:38:49

Micro Frame

2009-04-11 15:12:24

.Net MicroI2C总线模拟器

2022-09-02 10:45:58

Micro编辑工具

2009-08-18 11:08:24

.Net Framew

2009-07-28 03:42:00

ASP.NET Gri

2010-01-06 15:35:01

.Net Framew

2009-05-26 09:09:50

.NET FramewStream.Read基础类

2009-07-22 17:07:16

WPF插件开发.NET Framew

2009-04-28 16:18:29

.Net MicroSideShow

2010-01-06 18:27:06

.Net Framew

2009-07-20 16:12:21

ASP.NET Fra
点赞
收藏

51CTO技术栈公众号