Neatbo.

静态字体字形 SVG 导出

从支持的静态 TrueType 字体选取字形或码位,导出完整曲线边界的 SVG 和含名称、声明指标与码位状态的 JSON ZIP。

浏览器本地处理输入静态 TrueType TTF输出SVG 字形 / JSON ZIP单个文件最多 16 MiB · 最多 1 个
  1. 1添加输入
  2. 2调整设置
  3. 3获取结果

工具输入和文件在当前浏览器处理,不会上传。

输入内容

切换工具时在当前标签页临时保留输入。刷新或关闭后清除,较大的结果可能需要重新生成。

⌘ / Ctrl + Enter 运行

或将文件拖到这里

文件留在当前设备,原始文件不会被覆盖。

单个文件最多 16 MiB · 最多 1 个

    处理选项

    先填写标记为必填的选项,其余可保留默认值。

    十进制 ID,以空白或逗号分隔;如 2,3。可留空并使用码位。

    如 U+0041 U+1F600 或 65;映射缺失会显示为未覆盖。

    0–4,096 的整数;留边作用于曲线边界,不修改原字体或声明指标。

    正在准备处理工具…

    开始之前

    完整曲线资产需要曲线边界,而不只是字体行高。先确认支持格式和选取方式,再查看未覆盖状态并下载完整 ZIP。

    如何使用

    1. 选择一份支持的静态 TTF;字体原件保持不变。
    2. 输入字形 ID 或 Unicode 码位,设置整数留边。两个列表的并集决定输出字形。
    3. 核对选中字形、未覆盖码位和指标范围;下载 ZIP 查看每个 SVG 与完整 JSON。

    支持范围与限制

    仅单 face 的 sfnt 0x00010000 静态 TTF:glyf 二次曲线及有限无环 XY 仿射复合字形;原件最多 16MiB。CFF/CFF2、TTC、WOFF/WOFF2、可变、彩色、位图或内嵌 SVG 字体、点对齐复合字形与 cmap 2/8/10/14 不支持。

    ID 为十进制非负整数;码位为十进制或 U+ 加 1–6 位十六进制字符,以空白或逗号分隔。两个列表合计最多 2,000 项,分别不允许重复;不支持范围缩写。码位须为 Unicode scalar;映射不到非零字形时显式记录未覆盖,不生成替代字形。留白只省略该列表;至少指定一项。

    最多选中 2,000 个字形、200,000 条 M/L/Q/Z 命令、200,000 个展开控制点、200,000 次组件访问、32 层复合深度。SVG 留边为 0–4,096 个字体单位。完整 SVG+JSON 合计最多 32MiB;2000 SVG+report.json 共 2001 个成员,STORE ZIP 最多 33,766,552 字节。组合输入可能先触及另一项预算。

    坐标保留原 glyf 设计网格,SVG 反转 Y 轴;曲线边界由 float64 推导并显式向外加数值保护,不是无损数值运算。advance/lsb 为原 hmtx 声明值;不应用 USE_MY_METRICS、hinting、排版塑形、kerning 或栅格化布局。不会执行字体指令,也不校验全字体 checksum 或安装完整性。

    cmap 支持 0/4/6/12/13;先选有限 Unicode 优先表,Mac 字符映射只支持已声明的 Apple 表和语言/编码组合,不以 ISO 或未知语言回退猜测。Arabic/Hebrew 的方向、重复、多标量或字体变体歧义会原子提示不支持;可改用有效字形 ID。post 1/2/2.5/3 支持名称;post 4/未知格式、非 ASCII 自定义名称、保留索引及非法 XML 控制字符不支持。名称中的 TAB/LF/CR 保留,CR 在 SVG 中写为 
。

    表格预览前 200 个字形,并将长单元格限定为前 2,000 个 UTF-16 单位。JSON 超过 20,000 字符时复制的是明确摘要;ZIP 中 report.json、每个 SVG、全部命令、声明指标与码位状态始终完整。空轮廓保留 emptyOutline、bbox=null 和无 path SVG,不伪造曲线。

    操作示例

    示例输入

    sample-static-glyf.ttf
    示例参数
    {"params":{"glyphIds":"2 3","codePoints":"U+0041 U+10FFFF","padding":4}}

    示例输出

    2 个字形;U+0041 已覆盖,U+10FFFF 未覆盖;完整 SVG 与 JSON ZIP。

    出现问题时

    检查真实字体格式、ID 范围、码位 scalar、重复项和整数留边。不支持的 Mac 码位可改用已确认的字形 ID;超限则缩减完整选取或换支持的输入。失败或取消无部分 ZIP;修正后重新运行同一原件。

    常见问题

    为什么曲线边界不同于 ascent/descent 或 hmtx?

    ascent/descent 是全字体声明,advance/lsb 是排版指标。单字形尾部或重音可超出这些区域;本工具按完整二次曲线和复合变换计算 SVG viewBox,同时保留原声明指标。

    能用这个 SVG 代替字体排版吗?

    它们是孤立的设计网格轮廓资产,没有塑形、kerning、hinting 或有效 USE_MY_METRICS 处理。文本布局和光栅化应由合适的字体引擎完成。

    Mac 名称或码位歧义怎样处理?

    公开有限映射范围内才按 Apple 表选择。方向或字体上下文不足、未知或不匹配语言/编码时会原子提示不支持,绝不替换成 ISO 表。改用正确字形 ID 可导出轮廓并保留名称与指标。

    文档与延伸阅读

    相关工具