本地字体字形 SVG 导出指南
按明确静态 TTF 范围选取字形,核对码位与声明指标,并从完整 ZIP 读取每条曲线和 JSON。
先确认任务与字体格式
作者需要从字体导出完整 SVG,发现尾部被边界切掉,又希望保持原字体不变。这个终点是独立轮廓资产,不是改字体名称或渲染一段排版文本。原问题没有附完整字体,本工具不声称复现或修复其原件。
选择单 face sfnt0x00010000 静态 TTF,最多 16MiB。支持 glyf 二次曲线与有限无环 XY 仿射复合字形。CFF/CFF2、TTC、WOFF、可变、彩色、位图/内嵌 SVG、点对齐组件与 cmap2/8/10/14 会提示不支持;文件扩展名不是格式依据。
按 ID 或码位选取同一组资产
字形 ID 只接受十进制非负整数;码位接受十进制或 U+1–6 位十六进制字符,用空白或逗号分隔。两个列表合计最多 2,000 项,各列表不允许重复,不接受 2-100 这样的范围。SVG 留边为 0–4,096 个字体单位的整数。
示例字体选 ID2、3,码位 U+0041 与 U+10FFFF,留边4。U+0041 指向已选 ID2,U+10FFFF 未覆盖,最终只输出2个 SVG。report.json 完整列出请求状态;没有替代字形。不覆盖的请求可以只有 JSON、零个 SVG,这也是明确结果。
读取完整 ZIP 与有限预览
STORE ZIP 不压缩:2,000 个 SVG 加 report.json 共 2,001 个成员。完整逻辑内容最多 32MiB,实际 ZIP 最多 33,766,552 字节;不要用压缩大小代替完整数据预算。ZIP 文件名固定为安全 ASCII,SVG 只含 escaped title 与 M/L/Q/Z path,没有脚本、外链、嵌入字体或 foreignObject。
| 位置 | 完整内容 | 用途 |
|---|---|---|
| report.json | 源 SHA/字节、全部码位状态、名称、指标、边界、全部命令 | 完整数据检查 |
| glyph-00002.svg | 单字形 title/path/viewBox | 独立曲线资产 |
| 界面表格 | 前200字形;单格前2000 UTF-16单位 | 快速核对 |
| 复制 | JSON≤20000字符为完整报告;更大为明确摘要 | 按显示范围复制 |
严格有限的名称与 Apple 映射
名称支持 post1/2/2.5/3;post3 或无 post 时 name=null。post4、未知格式、非 ASCII 自定义名称、保留索引与非法 XML 控制字符提示不支持。TAB/LF/CR 声明保留;CR 在 SVG 以 保真。cmap0/4/6/12/13 先按有限 Unicode 顺序查找,随后才用明确允许的 Mac 表。
Mac rawlanguage0 只允许 encoding0Roman、4Arabic、5Hebrew、6Greek、7Cyrillic、29CentralEurope。非零语言只允许下面的成对范围;未知或不匹配语言不会回退到 script 猜表。Arabic/Hebrew 仅接受唯一、无方向标记、单标量且无字体变体的映射;方向、重复、多标量或字体变体歧义原子提示不支持。有效字形 ID 模式仍保留全部名称与指标。
| rawlanguage | Apple 表 | encoding |
|---|---|---|
| 16,31 | ICELAND | 0 |
| 18 | TURKISH | 0 |
| 19 | CROATIAN | 0 |
| 25–29,39–41 | CENTEURO | 0,29 |
| 38 | ROMANIAN | 0 |
| 144 | INUIT | 0 |
| 147 | GAELIC | 0 |
保持完整性并恢复
将原字体与完整 ZIP 一起保留。运行被拒绝或取消后,修正选择参数或缩小完整请求,再以同一原件恢复并核对报告,然后使用其中的 SVG 资产。
- 全部处理在浏览器内,原字体不会被写回或安装;没有字体指令执行。
- 最多200,000命令、200,000展开点、200,000组件访问、深度32。输出预算同时生效;组合可能先触及另一限制。
- 名称/码位不支持时核对明确范围或使用已知 ID;参数非法时修正重复、范围、scalar 和整数留边。
- 错误与取消没有部分 ZIP;减少完整工作量或修正输入,再运行同一原件。预览、摘要不等于全部 JSON。
参考资料
- 完整字体字形 SVG 导出需求
Lance Pollard 的第一人称尾部裁剪与保持字体不变的需求;原字体未附,不宣称复现。
- Apple post 字形名称格式
名称格式正确性依据,不作为需求证明。
- Unicode Apple 字符映射
使用完整官方表及许可;Arabic/Hebrew 方向/多标量/变体只采用明确有限范围。
本分类工具使用说明
展开工具,查看操作步骤、可调选项和支持范围,再直接进入工作区。
静态字体字形 SVG 导出从支持的静态 TrueType 字体选取字形或码位,导出完整曲线边界的 SVG 和含名称、声明指标与码位状态的 JSON ZIP。
完整曲线资产需要曲线边界,而不只是字体行高。先确认支持格式和选取方式,再查看未覆盖状态并下载完整 ZIP。
操作步骤
- 选择一份支持的静态 TTF;字体原件保持不变。
- 输入字形 ID 或 Unicode 码位,设置整数留边。两个列表的并集决定输出字形。
- 核对选中字形、未覆盖码位和指标范围;下载 ZIP 查看每个 SVG 与完整 JSON。
可调选项
- 字形 ID 列表
- 按需要填写
十进制 ID,以空白或逗号分隔;如 2,3。可留空并使用码位。
- Unicode 码位列表
- U+0041
如 U+0041 U+1F600 或 65;映射缺失会显示为未覆盖。
- SVG 留边(字体单位)
- 0
0–4,096 的整数;留边作用于曲线边界,不修改原字体或声明指标。
能力与限制
- 仅单 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,不伪造曲线。