Java2D - 访问字体CMap以呈现连字

时间:2017-01-17 15:06:20

标签: java fonts awt java-2d

我需要将带有连字(+ =)的Emojis打印到Graphics2D对象中。从我看到你可以使用int或从字体创建一个GlyphVector,然后将GlyphVector打印到Graphics2D对象。

两种方法都不起作用,因为它们无法渲染连字。 Font:String中有一个有趣的方法,允许您使用指定的字形索引创建GlyphVector。

问题:

如何检索此类字形索引。手动访问连字字形的索引我可以解决问题。

age类隐藏了允许您访问CMap的所有API,我在标准API中看不到任何方式来访问/查询字形。

有什么办法吗?

1 个答案:

答案 0 :(得分:0)

我搜索了JAVA,找到了createGlyphVector(frc,int []),这是我使用JAVA从本地代码显示文本所需要的。

在搜索中,我发现了这个正是我所寻找的奇妙问题,以验证我们确实在JAVA DrawGlyphRuns D2D等效项中拥有

从本机代码中使用JAVA的替代方法是包括一个库,例如freetype-gl并在本机端进行所有操作。

因此,对于在JAVA中不容易获得cmap数据的我的解决方案,是预先为特定字体准备好它并制成资源数据表。这对于具有合理数量的Unicode代码点的脚本非常有效且非常迅速。假设cmap数据是稳定数据。这些表占用的内存很少,即使cmap数据随时可用,也不必为每个字形都调用函数。

相关问题