Как получить список установленных шрифтов True Type в Linux, используя C или C ++? - PullRequest
6 голосов
/ 15 октября 2008

Как мое приложение может получить список шрифтов True Type, доступных в Linux.

Существует ли стандартная директория, в которой они хранятся в разных дистрибутивах? Или какой-то другой стандартный способ найти их?

Ответы [ 6 ]

4 голосов
/ 15 октября 2008

Я думаю, что fontconfig - верный способ сделать это. Взгляните на статью в Википедии или fontconfig hompage .

3 голосов
/ 17 августа 2009

Я только что сделал это, используя что-то под названием Pango, которое используется GTK +. Я нашел это, посмотрев код для программы 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]));
  }
2 голосов
/ 17 августа 2009

попробуйте функцию под названием 'XListFonts'

http://tronche.com/gui/x/xlib/graphics/font-metrics/XListFonts.html

1 голос
/ 19 июля 2012

Не подходит, но вы можете использовать fontmatrix показывает все и там предварительный просмотр (yum -y install fontmatrix)

enter image description here

0 голосов
/ 17 августа 2009

Если вы используете высокоуровневый инструментарий, такой как GTK + или Qt, вероятно, есть лучшая функция, чтобы сделать это для вас; в противном случае fontconfig является де-факто способом сделать это.

0 голосов
/ 15 октября 2008

Если вы не пишете проприетарное программное обеспечение или любое другое лицензионное программное обеспечение, несовместимое с GPL, вы можете попробовать посмотреть код на xlsfonts, чтобы узнать, как запрашивать сервер шрифтов. (Сервером шрифтов может быть сам X, но это не имеет значения.)

...