我的应用程序如何获取 Linux 上可用的 True Type 字体列表。
是否有一个标准目录,它们存储在不同的发行版中?或者其他一些标准的方法来定位它们?
我认为 fontconfig 是正确的方法。查看wikipedia 文章或fontconfig 主页。
尝试一个名为“XListFonts”的函数
http://tronche.com/gui/x/xlib/graphics/font-metrics/XListFonts.html
我只是使用 GTK+ 使用的 Pango 来完成它。我通过查看 linux 'Character Map' 程序 (gucharmap) 的代码找到了它。这是基本思想:
PangoFontFamily **families;
...
pango_context_list_families (
gtk_widget_get_pango_context (GTK_WIDGET (notebook)),
&families, &fontCount);
printf("%d fonts found\n", fontCount);
for(i=0; i<fontCount; i++)
{
printf("[%s]\n", pango_font_family_get_name (families[i]));
}
不相关,但您可以使用fontmatrix
显示全部和预览(yum -y install fontmatrix)
如果您没有编写专有软件或任何其他与 GPL 不兼容的许可软件,您可以尝试查看 xlsfonts 的代码以了解如何查询字体服务器。(字体服务器可以是 X 本身,但没关系。)
如果您使用的是 GTK+ 或 Qt 之类的高级工具包,那么可能有更好的功能可以为您做这件事;如果没有,fontconfig 是事实上的方法。