Windows API 访问字体表(Kern、GPOS 等)
Windows API To Access Font Tables (Kern, GPOS, etc)
目前Apple提供了访问字体表中数据的函数,例如CTFontCopyTable。我正在使用它在可用时从字体中解析信息(字距调整等(。是否有任何类似的方法可以在Windows上按字体提取相同的数据?
当涉及到这些字体表时,我可以在窗口端看到很多文档,但我似乎找不到一种按字体提取这些数据的方法。
以下是我在osx中提取数据的方式:
CTFontRef lCTFont = CTFontCreateWithName((CFStringRef)lNSFontName, 800.0f, NULL);
CFDataRef lKernTable = CTFontCopyTable(lCTFont, kCTFontTableKern, kCTFontTableOptionNoOptions);
CFDataRef lGPOSTable = CTFontCopyTable(lCTFont, kCTFontTableGPOS, kCTFontTableOptionNoOptions);
GetFontData
将获取原始表数据,但正如其他建议建议的那样,您可能希望使用系统提供的文本布局方法,而不是尝试使用自己的文本布局方法。
您可以使用
GetKerningPairs
获取字距调整数据,GetCharacterPlacement
获取 GPOS 数据。
如果您的真实意图只是简单地正确呈现一些文本,则可能需要改用Uniscribe。