从基于debian的系统上的脚本语言(例如Python或Ruby)中,我想找到以下其中之一:
- 特定字体具有 字形的所有Unicode码点
- 所有具有特定Unicode码点字形的字体
(显然1或2都可以由另一个推导出来,所以哪个更容易就好。)我以前这样做过:
fc-list : file charset
…并根据来自fontconfig的代码解析每行末尾的输出但在我看来,应该有一种更简单的方法来做到这一点。
(我不完全确定这是正确的StackExchange网站这个问题,但我正在寻找一个答案,可以编程使用。)
我会尝试任何一种FreeType 2语言绑定。下面是一个Perl解决方案,它使用Font::FreeType
:
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
,适用于各种环境和编码。例如,有关平台和编码标识符实际含义的描述,请参阅本参考资料。我假设这个包既可以用作库,也可以用作命令行工具,但我没有这方面的经验。