如何使用C或C++在Linux上获取已安装的True Type字体列表?

6

我的应用程序如何获取Linux上可用的True Type字体列表。

它们是否存储在不同发行版之间的标准目录中?或者有其他标准方法来定位它们吗?

6个回答

7

2

我刚刚使用了一个叫做Pango的东西,它被GTK+所使用。我是通过查看Linux上字符映射程序(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]));
  }

2

1

这并不相关,但你可以使用fontmatrix来显示所有字体及其预览(yum -y install fontmatrix)。

enter image description here


0

如果您正在使用像GTK+或Qt这样的高级工具包,那么可能有更好的函数可以为您完成;如果没有,fontconfig是实现它的事实标准方式。


0

如果您不是编写专有软件或任何与GPL不兼容的许可软件,您可以尝试查看xlsfonts代码以了解如何查询字体服务器。(字体服务器可以是X本身,但这并不重要。)


xlsfonts使用老旧的废弃服务器端X字体,而不是Pango使用的客户端字体。 - barefootliam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接