如何从java中的系统字体获取ttf字体数据

Ave*_*yan 11 java fonts truetype libgdx

我在系统上安装了一些ttf字体.

我使用了这个列表

GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()
Run Code Online (Sandbox Code Playgroud)

这不仅是ttf字体,而是我猜的所有字体.最终如果我使用:

Font.decode(fontName)
Run Code Online (Sandbox Code Playgroud)

我可以得到awt.Font实例.

据我所知,Font没有连接到实际的PhysicalFont,那么如何从该列表或awt.Font中检索ttf字体文件或来自该ttf文件的字节数据?我试图检索物理字体数据或类似的东西.那个数据应该在某个地方吗?

我需要它的原因是最终使用libGDX FreeTypeFontGenerator来生成BitmapFont

这必须适用于Windows,osx和linux.

Nat*_*teS 3

这是不可能的。您能做的最好的事情就是使用反射,但它只能与 Oracle JRE 一起使用并访问私有 API,因此可能会与任何新的 Oracle 版本冲突。

您可能可以编写一个本机库来枚举字体及其文件。