1 .如果要更改字体宽度,可手工修改 BDF 文件,具体方法为先记录各个 BMP 中字体所需宽度,然后手工修改 BDF 文件的如下红色 部分:
ENCODING 1569
SWIDTH 520 0
DWIDTH 17 0
BBX 16 16 0 -3 ,经过实践, 16 × 16 的字体宽度最小能修改为 9
2 .打开 MCT 工具的 Font Customizer Tool ,在选择 Language 的时候有“ Alphabetic ”(字母文字)及“ Ideographic ”(象形文字)可选;如果是等宽的 BDF 则选择 alphabetic ,如果是非等宽的则选择 Ideographic ,同时 Width Property 选择 Variable 即可生成有宽度属性的字体 .h 文件。
一个典型的字体文件的定义为:
#if defined(__MMI_LANG_THAI__)
/* 泰文字体,使用 EmbedTools 能够直观看到 */
// 泰文在 Unicode 中的分布为两块
const RangeData Thai14_RangeData[2]={
{3585,3642},/*0x0E01~0x0E3A: 58 个字母 */
{3647,3675},/*0x0E3F~0x0E5B: 29 个字母,共 87 个字母 */
};
const RangeDetails Thai14_RangeInfo={
2,
Thai14_RangeData
};
sCustFontData pluto_thai = {
/*5 个参数分别表示字体宽、高、是否等宽( 0 非等宽、 1 等宽)、每个字在 data 中的长度及最大字符个数,如果是非等宽的情况,好像第四个参数无用 */
14, 14, 0, 25, 500,
(U8*)L_Thai_Medium_W, (U32*)L_Thai_Medium_O, (U8*)L_Thai_Medium_D, (U32*)RangeOffset_14_Thai_Medium,
{
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH}, },
&Thai14_RangeInfo};
#endif