我需要将带有连字(+ =)的Emojis打印到Graphics2D对象中。从我看到你可以使用int
或从字体创建一个GlyphVector,然后将GlyphVector打印到Graphics2D对象。
两种方法都不起作用,因为它们无法渲染连字。 Font:String
中有一个有趣的方法,允许您使用指定的字形索引创建GlyphVector。
问题:
如何检索此类字形索引。手动访问连字字形的索引我可以解决问题。
age
类隐藏了允许您访问CMap的所有API,我在标准API中看不到任何方式来访问/查询字形。
有什么办法吗?
答案 0 :(得分:0)
我搜索了JAVA,找到了createGlyphVector(frc,int []),这是我使用JAVA从本地代码显示文本所需要的。
在搜索中,我发现了这个正是我所寻找的奇妙问题,以验证我们确实在JAVA DrawGlyphRuns D2D等效项中拥有
。从本机代码中使用JAVA的替代方法是包括一个库,例如freetype-gl并在本机端进行所有操作。
因此,对于在JAVA中不容易获得cmap数据的我的解决方案,是预先为特定字体准备好它并制成资源数据表。这对于具有合理数量的Unicode代码点的脚本非常有效且非常迅速。假设cmap数据是稳定数据。这些表占用的内存很少,即使cmap数据随时可用,也不必为每个字形都调用函数。