目标c - 如何在iOS中从集合(TTC)中提取TrueType字体(TTF)



我想做的是获取一个TTC文件,从中提取所有包含的TTF,并将它们保存到我的应用程序的文档目录中。有人知道如何做到这一点吗?有没有图书馆会有所帮助?

我找到了像fondu或Font Forge这样的OS X解决方案,但无法使它们在iOS下运行。

这可以使用 pyftsubset 来完成,它可以与 pip3 install fonttools 一起安装。

#!/usr/bin/env bash
## Install required python dependencies with
# pip3 install fonttools
font="${1}"
for n in {0..10} ; do
    pyftsubset --font-number=${n} 
            --output-file="${font%.*}_${n}.ttf" 
            --verbose
done

pyftsubset还允许您挑选特定的 Unicode 范围,并跳过您不想包含的字形。这可以与TTC和TTF文件一起使用,因此您可以通过从字体(例如Arial Unicode)中删除不需要的所有内容来减小字体大小。例如,以下脚本将仅包含中文、拉丁语和 Bopomofo Unicode 范围:

#!/usr/bin/env bash
## Install required python dependencies with
# pip3 install fonttools
font="${1}"
for n in {0..10} ; do
    echo $n  #             CHINESE               BASIC LATIN               BOPOMOFO
    pyftsubset "${font}" --unicodes=U+4E00-9FFF --unicodes=U+0000-007F --unicodes=U+3100-312F 
            --font-number=${n} 
            --output-file="${font%.*}_chinese_only_${n}.ttf" 
            --verbose
done

注意:脚本会将字体索引从 0 迭代到 10 — 大多数 ttc 集合的文件将少于 10,因此脚本将显示不存在的最后几个索引的错误。

最新更新