[转]使用makeqpf生成Qtopia所需汉字字体

一、编译makeqpf

为了能够编译一个能正常保存汉字字体的makeqpf,在编译QT库时必须定义这个宏:

QT_TRANSFORM_VFB

并且不能定义下面这两个宏:

QT_NO_QWS_TRANSFORMEDQT_NO_QWS_SAVEFONTS

如果希望使用BDF字体,需要取消 QT_NO_BDF这个宏定义。

如果希望使用TTF字体,需要取消 QT_NO_FREETYPE这个宏定义。

 

QT的configure已经包含了一个典型的makeqpf配置,可以使用下面命令编译:

./configure -qconfig makeqpf [extra options]
make
make -C tools/makeqf

 

二、准备汉字字体文件

为了生成qt字体,我们需要先将字体复制到$QTDIR/lib/fonts/目录下。大部分汉字字体都是TTF字体,按小字号显示时通常会产生一定变形,并不好看,如果需要在嵌入式系统下使用QT,最好使用点阵字体。

http://sourceforge.net/projects/wqy/这里是一个开源的CJK点阵字体,提供了9、10、11、12点阵的黑体和普通体汉字点阵,采用的格式是pcf字体格式(可直接用于X11)。QT2的makeqpf并不支持pcf字体,我们需要将pcf转为bdf格式,在 http://www.tsg.ne.jp/GANA/S/pcf2bdf/这里提供了这个转换工具。

经过转换后,我们得到了所期望的12点阵和9点阵的BDF汉字库:wenquanyi_9pt.bdf wenquanyi_12pt.bdf,并将这两个文件复制到$QTDIR/lib/fonts/下。

 

三、生成QT使用的QPF汉字字体

编辑$QTDIR/lib/fonts/fontdir,添加如下两行:

unifont wenquanyi_9pt.bdf BDF n 50 90 u

unifont wenquanyi_12pt.bdf BDF n 50 120 u

 

然后先运行qvfb,接着运行makeqpf,如果makeqpf可以正常运行,那么我们会看到列表框中列出了fontdir中的所有字体列 表,找到我们刚添加的unifont字体,鼠标点击,稍等几秒后即可看到这行文本的字体已经变成这种字体,并且已经在$QTDIR/lib/fonts目录下产生unifont_90_50.qpf、unifont_120_50.qpf这两个字体文件。当这两个文件存在时,再次点击列表框中的unifont字体,makeqpf会在控制台提示Already a ROM font.

posted @ 2013-05-08 09:59  sky1991  阅读(618)  评论(0编辑  收藏  举报