我目前正在使用 CoreGraphics 和 CoreText 编写一个简单的位图字体生成器。我正在检索字体的字距调整表:
CFDataRef kernTable = CTFontCopyTable(m_ctFontRef, kCTFontTableKern, kCTFontTableOptionNoOptions);
然后解析它,它工作正常。字距调整对为我提供了字距调整对的字形索引(即 CGGlyph),我需要将它们转换为 unicode(即 UniChar),不幸的是,这似乎并不容易。我得到的最接近的是使用:
CGFontCopyGlyphNameForGlyph
检索 CGGlyph 的字形名称,但我不知道如何将名称转换为 unicode,因为它们实际上只是诸如quoteleft 之类的字符串。我想到的另一件事是解析kCTFontTableCmap
自己以手动执行从字形到 unicode id 的映射,但这似乎是一项任务的大量额外工作。有什么简单的方法可以做到这一点吗?
谢谢!