适用场景
当你拿到一批 OTF/TTF 字体文件(可能来自不同作者、不同导出工具),常见问题包括:字体家族命名混乱(Family/Subfamily/Full name 不一致)、字重映射错误(Regular/Book/Medium/Bold 对不上)、Style ing 不规范、Post Name 不符合约束、以及 WOFF2/子集化与 Web 端预览的兼容性问题。本文给出可直接让 AI 生成“在线字体命名与字重映射修复工作台”的提示词(Prompts),生成后即可运行/构建/部署。
工具目标
做一个浏览器端可用的在线工具:上传字体文件(支持拖拽与批量),自动解析 name 表与 OS/2、head、post 等关键表,输出“问题清单 + 修复建议 + 一键导出修复版字体 + 审计报告”。工具提供可重复的修复规则,支持批处理与可回滚。
输入与输出约定
输入:.otf / .ttf(可多文件)、可选的目标命名模板(家族名、子家族名、版本、厂商等)、可选的字重映射策略(如 400/700 映射与 style )。
输出:修复后的字体文件(zip 打包)、每个文件的 JSON 报告、汇总 HTML/PDF 报告(PDF 为“导出现有内容为 PDF”,不生成配图)、以及可复用的规则配置文件。
Prompt 1:生成 Next.js 在线字体修复工作台(推荐)
你是一名资深全栈工程师。请从零生成一个“在线字体命名与字重映射修复工作台”,要求可以本地运行、可构建、可部署。
【技术栈】
- 前端:Next.js 14 + React + Type + TailwindCSS
- 解析字体:使用开源 JS 库(例如 opentype.js / fontkit 的可用替代)读取 TTF/OTF;若某库不支持某些表,请给出降级策略。
- 打包导出:浏览器端使用 JSZip 生成 zip;报告导出支持 JSON/HTML;如要导出 PDF,使用浏览器打印或基于现有 HTML 转 PDF(不要生成任何图片)。
【核心功能】
1) 上传与批量队列:支持拖拽上传多个字体,显示文件列表、状态(待处理/解析中/完成/失败)、耗时。
2) 解析与规范化:解析 name 表(nameID 1/2/4/6/16/17 等)、OS/2(usWeightClass、fsSelection)、post(italicAngle)、head(macStyle)。输出一个统一的数据模型。
3) 规则引擎:用户可选择“目标家族命名模板”和“字重映射策略”。实现规则:
- 统一 Family/Typographic Family/Full name/Post Name
- 自动修复字重:根据文件名/内部字段推断 weight;提供可手动覆盖
- 生成 style :Regular/Bold/Italic/BoldItalic
- 校验:Post Name 仅允许 ASCII + 不含空格;长度与重复冲突检查
4) 修复与导出:对每个字体生成修复后的二进制并可下载;同时生成原始与修复后的对比报告。
5) 审计报告:
- 每个字体:问题列表、修复动作、修复后字段
- 汇总:问题分布、规则命中统计、失败原因
6) 预览(可选):在浏览器端加载修复后的字体,展示一段可编辑预览文本,用于快速肉眼验证(不涉及生成图片)。
【交付物(必须输出)】
- 完整项目源码(逐文件给出)
- 清晰的文件树
- 可复制的安装与运行命令(pnpm/npm 任一)
- 构建命令与产物说明
- Dockerfile + 生产部署说明(含环境变量、端口、反向代理建议)
- 测试用例或 QA checklist(覆盖:解析准确性、规则正确性、导出文件可用、异常文件处理、性能与大文件)
【约束】
- 不要生成任何“出图/配图/渲染图/海报/插画”的内容。
- 工具必须能在没有后端的情况下运行(纯前端/Next.js 静态也可);如果确实需要后端处理,请解释原因并提供一键部署方案。
- 输出时先给总览,再给文件树,再逐文件给代码。
Prompt 2:生成 FastAPI 字体审计与修复服务(适合团队内网)
你是一名后端工程师 + 字体工程爱好者。请生成一个可部署的“字体审计与修复服务”,并提供配套 Web 前端。
【技术栈】
- 后端:Python 3.11 + FastAPI
- 字体处理:fontTools(ttLib)读取/修改 TTF/OTF 表
- 前端:简单的 React + Vite 或纯静态页面(能上传、查看报告、下载修复包即可)
【功能要求】
1) 上传接口:支持多文件上传,限制大小与类型,返回 taskId。
2) 任务处理:异步队列(可用内存队列/BackgroundTasks,或使用 Celery 但要说明成本)。
3) 审计规则:
- name 表一致性、重复项、编码问题
- OS/2 usWeightClass 与 fsSelection 的一致性
- Post Name 合规(ASCII、无空格、唯一)
- 文件名与内部字段的匹配度
4) 修复策略:根据用户输入的模板与映射规则写回表;保留原文件;输出修复版。
5) 导出:返回 zip(修复字体 + 报告 JSON + 汇总 HTML)。
【交付物(必须输出)】
- 完整项目代码、文件树
- 本地运行命令(含虚拟环境/依赖安装)
- Docker Compose 一键启动(前后端 + 可选反代)
- 部署说明(生产配置、日志、错误处理)
- 测试用例(pytest)或 QA checklist
落地建议
如果你只想快速交付一个“可用且易部署”的在线工具,优先使用 Prompt 1(Next.js)。如果需要多人协作、权限与审计留痕,选择 Prompt 2(FastAPI 服务化)。无论哪种实现,都建议先用少量典型字体做回归集,确保修复不会破坏现有字形与映射行为。