Listing available typefaces with Pango

This C program lists the available fonts in Pango using the Pango-Cairo backend.

#include <glib.h>
#include <pango/pangocairo.h>

static void
list_fonts ()
    int i;
    PangoFontFamily ** families;
    int n_families;
    PangoFontMap * fontmap;

    fontmap = pango_cairo_font_map_get_default();
    pango_font_map_list_families (fontmap, & families, & n_families);
    printf ("There are %d families\n", n_families);
    for (i = 0; i < n_families; i++) {
        PangoFontFamily * family = families[i];
        const char * family_name;

        family_name = pango_font_family_get_name (family);
        printf ("Family %d: %s\n", i, family_name);
    g_free (families);

int main (int argc, char ** argv)
    list_fonts ();
    return 0;


This is a makefile which should work:

pango-list-typefaces:   pango-list-typefaces.c
        cc -o $@ -Wall -g pango-list-typefaces.c \
        `pkg-config --cflags --libs pango` \
        `pkg-config --cflags --libs cairo` \
        `pkg-config --cflags --libs pangocairo` \
        `pkg-config --cflags --libs glib-2.0`


Web links

Copyright © Ben Bullock 2009-2024. All rights reserved. For comments, questions, and corrections, please email Ben Bullock ( or use the discussion group at Google Groups. / Privacy / Disclaimer