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

caj*_*ine 11 perl fonts

以下是问题:

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

主要有:

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

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

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

mob*_*mob 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;
Run Code Online (Sandbox Code Playgroud)

我已经超出了我的能力范围,但是发行版Font::TTF::Ttc中还有一个模块Font::TTF,您可以研究一下,看看是否可以提取有关支持的代码点的更多信息。

Font::TTF建议来自这里