How can one find the Unicode codepoints that a font has glyphs for, on a Debian-based system?

后端 未结 2 713
不知归路
不知归路 2021-01-11 18:01

From a scripting language (Python or Ruby, say) on a Debian-based system, I would like to find either one of:

  1. All the Unicode codepoints that a particular font
相关标签:
2条回答
  • 2021-01-11 18:38

    I would try any of the FreeType 2 language bindings. Here's a Perl solution to list the Unicode code points of a font using Font::FreeType:

    use Font::FreeType;
    Font::FreeType->new->face('DejaVuSans.ttf')->foreach_char(sub {
        printf("%04X\n", $_->char_code);
    });
    
    0 讨论(0)
  • 2021-01-11 18:59

    I've recently listed the mapping from unicode codepoints to glypths in a TTF using TTX/FontTools. That tool is written in Python, so it matches the Python tag in your post. The command

    ttx -t cmap foo.ttf
    

    will generate an XML file foo.ttx which describes that mapping, for various environments and encodings. See e.g. this reference for a description of what the platform and encoding identifiers actually mean. I assume that the package can be used as a library as well as a command line tool, but I have no experience there.

    0 讨论(0)
提交回复
热议问题