2025-07-05UTC+8

ZSFT 片段截取功能尝试

瑶清秋

虽然我并不是一个专业设计师,但也会苦恼当仅仅是想要临时使用一个自定义字体的字形时,却要去下载完整的,有时甚至高达 100MB 的字体包,然后安装它,在临时使用后,又将它从系统 /fonts/ 中删除,这很麻烦不是吗?

目前,没有任何免费商用字体网站(或者是没发现)提供过从他们的字体库中直接将局部字符生成出来,而大多数是提供原始包,但那通常有很大体积,且在临时使用字形的场景尤其不适合。

ZSFT 片段截取已略微突破传统字体到平面设计程序的字形嵌入途径,实现按需的矢量提取,无安装步骤。但也仅限于此。

起初的方法是从 ZSFT 字体详情页的预览器中增加一个截取按钮,点击后静默截图后下载,但是好像没有什么用,且截取的只不过是位图而已。

后来为了保留矢量性质,再加上 ZSFT 本身提供的 FontsAPI 作为底层,尝试直接解析字体元数据,在 OpenType.js 开源库和 ZSFT 之前实现筛选器自定义预览文字函数复用的帮助下,成功按需解析出字母 A 的原始矢量形状和 glyphs 。这是一次重大突破!

当进行了 GUI 的制作和大量调试后,我在输入框输入了汉字 “你” ,成功输出其 “你” 的 SVG Path 。

最终,仅包含 “你” 字形的 .svg 仅仅 2KB !这与源 TTF 文件的 15MB 小得多!

目前,片段截取功能已以 Beta 形式上线,不过目前仅属于 “最小可行功能” 的极基础。不过未来会支持多字符 SVG ,字形色号甚至是 OpenType 高级特性的调整。