zenconverter 中文文档 下载 App

TTF/OTF/WOFF/WOFF2 字体容器互转

为什么需要字体容器互转

Web 开发场景经常需要把桌面上用的 TTF/OTF 字体转成网页友好的 WOFF/WOFF2 格式——WOFF 压缩率更高、字体更小、加载更快。反过来,某些只有 WOFF2 格式的网页字体,你需要转成 TTF/OTF 才能安装到电脑或手机上使用。

ZenConverter 把这个场景覆盖到了手机端——之前这类工具几乎全是桌面端的。

四种容器格式的关系

格式引擎类型说明
TTF / OTF原生库 + KotlinSFNT(TrueType/OpenType)桌面/系统安装用的标准格式
WOFF 1.0纯 Kotlin zlibSFNT 压缩容器早期网页格式,WOFF2 的前一代
WOFF2arm64 原生 google woff2SFNT 高度压缩容器现代网页格式,比 WOFF 小约 30%

互转路线覆盖六种方向:

WOFF 和 WOFF2 之间不直接互转——需要先解回 TTF/OTF 再压到另一个容器。ZenConverter 没有暴露这条中间路线。

为什么分两种引擎

路线实现为什么
WOFF2 ↔ TTF/OTFarm64 原生 libzen_woff2.so(google woff2)WOFF2 格式使用 Brotli 类的高压缩算法,原生库才能正确编解码
WOFF ↔ TTF/OTF纯 Kotlin java.util.zipWOFF 1.0 是 SFNT + zlib 压缩,Kotlin 原生就能处理,不需要原生库

这种混合引擎设计的好处是:

自动选择输出扩展名

从 WOFF 或 WOFF2 解回 SFNT 时,ZenConverter 会检查 SFNT 文件头的 flavor 标签:

不会让用户手动选——因为用户不需要关心字体内部是 TrueType 还是 OpenType。

转换是"字节级"的

字体容器互转是字节级容器转换,不触及字体的轮廓数据:

这意味着转换后的字体可以被任何标准字体渲染器正确识别——ZenConverter 不"处理"字体内容,只换容器。

已知边界

使用场景

场景推荐
桌面设计稿用 TTF 字体,网页需要更小的字体TTF → WOFF2
从网站下载了 WOFF2 字体,想装到电脑或手机上WOFF2 → TTF
想检查某个字体文件的 SFNT flavor(TrueType/OpenType)转一下,输出扩展名告诉你

相关页面

模型下载与管理界面
ZenConverter 模型/字体下载管理