编写字体查看器 - 获取字体属性,动态加载TTF
我正在尝试用VB6 / VB5代码写一个可以查看TrueType / OpenType字体的程序(在Windows下)。
这竟然挺难的:
1) 在VB和winAPI中,我没有找到如何提取字体名称或字体属性的方法。
2) 我可以安装字体(使用AddFontResource这个API函数),但之后又得卸载它。不过,安装字体时需要提供一个路径名,而卸载字体时却需要字体的名称,而我不知道这个名称。
有没有办法使用未安装的字体(ttf)?
有没有办法用vb6提取字体的属性?
(我可以用wxPython写这个程序,但我对Python中的字体了解得比VB还少。)
2 个回答
0
确实是这样。我自己也遇到过同样的问题(可以看看我的提问)。最后我写了一个自己的解析器,因为我需要判断字体是否损坏。这里有一个叫做AddFontMemResourceEx
的函数,它的作用是:
当这个函数成功执行后,调用这个函数的程序可以释放pbFont指向的内存,因为系统已经复制了一份内存。要移除已安装的字体,可以调用RemoveFontMemResourceEx。不过,当程序结束时,系统会自动卸载这些字体,即使程序没有调用RemoveFontMemResource。
另外,你还可以使用字体和文本函数来获取字体的度量信息。
1
你可以使用 FreeType库。