11

这里已经有问题了:

我有很多不同的字体。其中许多是“仅 ascii”,我需要检查哪些字体包含几个重音字符。(拉丁语 - unicode 代码点 - 文本编码为 utf8)如:(áäčďéěíĺľňóôöőŕřšťúůüűýž)

主要有:

  • TrueType 字体(扩展名为 .ttf)
  • TrueType 集合(扩展名 .ttc)
  • OpenType 字体 (.otf)

使用 perl 执行此操作的通常(正确)方法是什么?(这是我唯一了解的语言,上述问题适用于 C)。在我开始安装所有 CPAN 模块之前询问包含“字体”的内容:)。

我在 OS X 上(如果这很重要,并且可以安装任何 macports 包 - 如果有帮助的话)。

4

1 回答 1

3

对于 .ttf 文件,您可以使用Font::TTF和相关的模块:

use Font::TTF::Font;
my $font = Font::TTF::Font->open( "C:/Windows/Fonts/ariali.ttf" );
my @supported_codepoints = sort { $a <=> $b } $font->{cmap}->reverse;

我已经超出了我的深度,但是分发中还有一个Font::TTF::Ttc模块Font::TTF,您可以在其中查看是否可以提取有关支持的代码点的更多信息。

Font::TTF建议来自这里

于 2013-06-04T15:45:59.133 回答