如何用perl检查哪些字体包含特定字符?

时间:2013-06-03 20:58:26

标签: perl fonts

以下是问题:

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

主要有:

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

使用perl执行此操作的常用(正确)方法是什么? (这是我所知道的唯一语言,上面的问题是针对C)。在我开始之前询问所有包含“font”的CPAN模块:)。

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

1 个答案:

答案 0 :(得分: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建议来自here