跳到主要内容
AZ Tools

字体文件检查器

读取字体文件内部的各张表,告诉你这个文件对自己的真实声明——它常常和文件名说的不是一回事。你会看到操作系统读到的字族名和样式名、CSS 或 PDF 流程会要求的 PostScript 名、版本字符串、字形数量、字体实际映射的 Unicode 码点数量、每 em 单位数、字重与字宽等级、厂商 ID,以及设计者写在版权、许可和许可链接字段里的内容。它还会读 fsType,也就是 OS/2 表里那个记录厂商许可范围的两字节字段:可安装、仅限预览与打印、允许可编辑嵌入、禁止子集化,或者干脆禁止嵌入。决定你能否把字体随应用或 PDF 一起分发的正是这个字段,而几乎没人去看它。这里有两个容易混淆的数字,特意分开显示:字形数是文件里装了多少个字形,已映射字符数则是 cmap 真正解析到实际字形的码点有多少个。每一款字体这两个数都不一样,因为 cmap 的区间里可能有空洞,而且连字、小型大写和各种替代字形都是没有任何码点直接指向的字形。每张表的校验和都会验证,所以构建之后被改动或损坏的文件会被标出,而不是当成完好的来读。支持 TrueType、OpenType/CFF 和 WOFF;WOFF2 采用 Brotli 压缩,会给出说明并拒绝,而不是读错。不会上传,文件在你的浏览器里解析。

使用方法

  1. 把 .ttf、.otf 或 .woff 拖到方框里,或点击选择文件。WOFF 会先在浏览器中解包再解析。
  2. 看字族名和样式名,弄清这个字体自称是什么——字体菜单里显示的就是它,而文件名经常是错的。
  3. 把字体随应用、PDF 或网页分发之前,先看嵌入那一行;那是厂商自己写下的许可范围。
  4. 把字形数和已映射字符数对比一下来判断覆盖范围:字形很多而映射字符很少,说明多数是替代字形。
  5. 展开表列表可以看到文件带了哪些表;高亮的那些是校验和不通过的表。

常见问题

这里显示的字族名为什么和文件名不一样?
因为两者毫无关系。文件名只是把文件给你的人随手打的字;字族名存在字体的 name 表里,操作系统、字体菜单和 CSS 真正比对的都是它。改文件名不会改变字体的任何东西。所以一个文件名整整齐齐的文件夹装进系统后仍可能变成一个乱七八糟的字族,或者一个在磁盘上看着没问题的网页字体就是匹配不上你的 font-family 规则——起作用的是里面那个名字,本工具把它显示给你看。
fsType 是什么,为什么该关心它?
fsType 是 OS/2 表里的两字节字段,厂商在其中记录字体被嵌入时——嵌进 PDF、应用包、游戏或网页字体——允许做什么。0 表示可安装且无限制。第 1 位表示禁止嵌入。第 2 位表示仅限预览与打印,于是 PDF 能显示它但谁也不能编辑文字。第 3 位允许可编辑的嵌入。另外两位禁止子集化、并把嵌入限制为位图。它更像是一份机器可读的意向声明而非一把锁,也不能代替阅读许可原文,但一个标为受限的字体就是明确的信号:分发之前先去确认。
为什么字符数比字形数少?
它们衡量的不是一回事。字形是文件里的形状;已映射字符是 cmap 表解析到非 .notdef 字形的 Unicode 码点。几乎所有字体的字形都多于字符,因为连字、小型大写、旧式数字、阿拉伯文的位置变体和风格替代字形,都是没有任何码点直接指向的字形——排版引擎是通过 OpenType 特性去取用它们的。如果只数 cmap 区间的跨度而不看它们解析到的字形,就会高估覆盖范围,因为区间中合法地存在未映射的空洞。
能打开 WOFF2 或字体集合吗?
暂时不能,而且它会明说,不会瞎猜。WOFF2 是 Brotli 压缩的,要打开它需要一个比本页面其余部分大得多的解压器,因此会带着提示拒绝;用 Google woff2 工具里的 woff2_decompress,一秒钟就能转成普通文件。.ttc 字体集合是在一个头部之后放了多个字体,而本工具读的是单个字体,所以集合也会被拒绝。普通 WOFF 是支持的:它的表用 zlib 压缩,在解析前会先在这里解开。
每 em 单位数能告诉我什么?
它是字体坐标所依据的设计网格的大小,也就是一个 em 由多少个内部单位构成。TrueType 字体几乎总是用 1000 或 2048,CFF/OpenType 字体通常用 1000。在跨字体比较度量、或换算字体编辑器里的数值时它很关键:说上伸部是 1600 单位,在你知道 em 是 1000 还是 2048 之前毫无意义。另外它必须是 2 的幂,TrueType 的 hinting 才会正常工作——2048 如此常见正是这个缘故。
我的字体会被上传吗?
不会。文件由浏览器自带的文件 API 读取,在本页面的 JavaScript 中解析,不会发送到任何地方。你可以直接验证:打开页面后断开网络,再拖入一个字体,它照常工作。对字体来说这一点尤其要紧,因为买了授权的商业字体,恰恰是最不该为了搞清它的许可条款而上传到陌生人服务器的那类文件。

相关工具