如何在基于debian的系统上找到具有字形的字体的Unicode码点?



从基于debian的系统上的脚本语言(例如Python或Ruby)中,我想找到以下其中之一:

  1. 特定字体具有
  2. 字形的所有Unicode码点
  3. 所有具有特定Unicode码点字形的字体

(显然1或2都可以由另一个推导出来,所以哪个更容易就好。)我以前这样做过:

fc-list : file charset

…并根据来自fontconfig的代码解析每行末尾的输出但在我看来,应该有一种更简单的方法来做到这一点。

(我不完全确定这是正确的StackExchange网站这个问题,但我正在寻找一个答案,可以编程使用。)

我会尝试任何一种FreeType 2语言绑定。下面是一个Perl解决方案,它使用Font::FreeType:

列出字体的Unicode代码点
use Font::FreeType;
Font::FreeType->new->face('DejaVuSans.ttf')->foreach_char(sub {
    printf("%04Xn", $_->char_code);
});

我最近使用TTX/FontTools列出了从unicode码点到TTF中字形的映射。该工具是用Python编写的,因此它与您帖子中的Python标签匹配。命令

ttx -t cmap foo.ttf

将生成一个描述映射的XML文件foo.ttx,适用于各种环境和编码。例如,有关平台和编码标识符实际含义的描述,请参阅本参考资料。我假设这个包既可以用作库,也可以用作命令行工具,但我没有这方面的经验。

相关内容

  • 没有找到相关文章

最新更新