中文字体主题工厂
触发场景
- “给这份 PPT/Word 换个主题”“配色太乱了,统一一下”
- “中文用什么字体好看”“标题和正文字体怎么搭”
- “做成政务风 / 商务风 / 国风 / 科技风”
能力与价格
- 免费:主题推荐、中文字体搭配建议、按
assets/themes.json给 HTML/CSS 等产物写配色和字体变量、按描述设计新主题。 - 收费(0.20 元/次,支付宝 AI 按量付费):把主题一键套用到用户的
.pptx/.docx(PPT:背景色、标题强调色与中文标题字体、正文色与正文字体;Word:Title、Heading 1-3、Normal 样式),返回新文件,不覆盖原件。每个文件套用一次计一次费;同一订单重试不重复扣费。 - 收费以服务端 402 账单金额为准(与支付宝登记价、SkillHub 展示价一致)。
依赖
- Node.js 18+(脚本
scripts/zhuti-paid.mjs,无第三方依赖)。 - 买家侧支付宝官方支付能力(提供
alipay-payment-skill与alipay-botCLI):
npx -y @alipay/agent-payment@latest install - 付费服务:
https://sunxlight.cn(已在支付宝 AI 付登记;可用环境变量ZHUTI_PAY_BASE_URL覆盖)。
工作流程
- 展示主题:
node scripts/zhuti-paid.mjs themes列出所有主题(键名、中文名、字体、色值),也可直接读assets/themes.json。经典主题的原版说明见references/theme-en-*.md。 - 让用户选:根据场景推荐 1-2 个:
- 政府、国企材料 →zhengwu-hong
- 商务汇报 →shangwu-lan/ocean-depths
- 文化类 →guofeng-mo
- 科技发布 →tech-innovation
- 极简 →modern-minimalist
等用户确认后再应用。 - 应用到 PPT/Word(收费):先告知用户“套用主题需支付 0.20 元/个文件”,用户同意后按下方付费流程执行。文件需为 .docx/.pptx,单个不超过 10MB;文件会上传到付费服务处理,涉密内容请勿使用。
- HTML 等其他产物(免费):从
assets/themes.json读取色值和字体,写成 CSS 变量即可。 - 自定义主题(免费):现有主题都不合适时,按用户描述生成新主题:4 个颜色(背景、正文、强调、点缀)加中文标题字体、正文字体和西文字体,直接用于 HTML/CSS 或指导用户手动设置(付费套用仅支持内置 13 套主题)。
- 检查:对比度要足够(浅底配深字)。提醒用户:字体需要本机已安装,否则会被替换;思源黑体/宋体是开源免费字体(SIL OFL)。商用时要留意方正等字体的授权。
付费调用流程(HTTP 402 / Payment-Needed / Payment-Proof)
每次会话用独立的 --state-dir,如 .state/<SESSION_KEY>;状态文件不要提交或上传。
- draft(免费):上传文件并选择主题,取得 job_id 与收费资源 URL
node scripts/zhuti-paid.mjs draft --input 输入.pptx --theme 主题键 --state-dir .state/SESSION_KEY - probe(请求收费资源;未付款时服务端返回 HTTP 402,
Payment-Needed响应头为账单)
node scripts/zhuti-paid.mjs probe --state-dir .state/SESSION_KEY
向用户展示金额与用途,等待确认;不要替用户确认付款。 - pay(把 402 账单与原始请求交给支付宝官方 CLI
alipay-bot 402-buyer-pay,展示支付入口/二维码,等待用户扫码授权)
node scripts/zhuti-paid.mjs pay --state-dir .state/SESSION_KEY --session-id SESSION_KEY - complete(付款后用订单号查原订单,官方 CLI 携
Payment-Proof以原 URL、原方法重试;服务端调用支付宝验付并校验订单/金额/资源/原请求后生成结果,再向支付宝发送履约确认)
node scripts/zhuti-paid.mjs complete --state-dir .state/SESSION_KEY --out-shake-no OUT_SHAKE_NO --output 输出.pptx
若 CLI 输出了资源 JSON 但未自动保存,可用:node scripts/zhuti-paid.mjs save --response 响应.json --output 输出.pptx
异常处理
- 支付处理中/状态不明:先用
complete查询原订单,不要重新 probe 或重复付款。 - 服务端返回 502
FULFILLMENT_CONFIRM_FAILED:结果已生成,稍后用同一订单重试complete,不会重复扣费。 - 支付失败或用户取消:如实告知,不交付付费结果。
- 买家 CLI 回执失败:按官方
alipay-payment-skill文档恢复,不要求用户重新付款。
安全约定
- 脚本只读用户给的输入文件、只写用户指定的输出路径;只访问上述付费服务和本机
alipay-bot。 - 不接触、不保存任何支付密钥;付款、签名和验付由支付宝官方能力与服务端完成。
中文字体搭配速查
| 风格 | 标题 | 正文 | 西文/数字 |
|---|---|---|---|
| 通用商务 | 思源黑体 Bold / 微软雅黑 Bold | 思源黑体 / 微软雅黑 | Arial |
| 正式典雅 | 思源宋体 Bold | 思源宋体 | Georgia / Times New Roman |
| 公文政务 | 方正小标宋简体 | 仿宋_GB2312 | Times New Roman |
| 科技 | 思源黑体 Heavy | 思源黑体 | Arial / Inter |
Credits / 修改声明
- 基于 anthropics/skills 中的
skills/theme-factory(Apache-2.0,见LICENSE.txt)。 - 本版改动:
- SKILL.md 改写为中文版。
- 原版
themes/*.md原样移到references/theme-en-*.md。 - 新增
assets/themes.json:10 套原版配色(色值不变)换成中文字体,另加 3 套中文主题。 - 新增
scripts/apply_theme.py。 - 1.1.0:主题套用迁至服务端,按支付宝 AI 按量付费(A2M/HTTP 402)改为按次收费(0.20 元/次);
scripts/apply_theme.py改为scripts/zhuti-paid.mjs;因平台不接受 PDF,移除assets/theme-showcase.pdf。