【生活育儿赛道】字帖生成器 · Trae创意大赛初赛 Demo

【学习工作赛道】字帖生成器 — 纯前端离线汉字书法练习工具

A Type, A Trace — 一键生成带拼音、组词、笔画分解的描红字帖,支持矢量 PDF 输出。


1. Demo 简介

是什么

字帖生成器 是一款纯前端单页应用(HTML5 + CSS3 + Vanilla JS),双击 HTML 文件即可在浏览器中运行。无需服务器、无需安装、无需联网。输入汉字后自动生成带拼音标注、组词提示、笔画分解的描红字帖,支持通过浏览器原生打印输出矢量 PDF。

面向谁

  • 中小学语文教师 — 快速生成课堂练习字帖,自定义练习内容
  • 家长 — 为孩子定制课后练字纸,随时打印
  • 书法爱好者 — 自由切换 9 款书法字体,个性化练习
  • 任何想写好汉字的人 — 正如作者所说:“自从用了电脑,打字技术增长,但字却越来越丑”

核心功能

功能 说明
智能描红字帖生成 输入汉字自动生成田字格描红字帖,支持拼音标注(含声调)
组词辅助 内置 4000+ 词库,自动为每个汉字提供组词参考
笔画分解 基于 Hanzi Writer 输出 SVG 笔画分解,辅助正确书写
矢量 PDF 输出 两种方式:浏览器打印另存为 PDF + Puppeteer 一键矢量 PDF
9 款书法字体 内置姜浩硬笔楷书、华文楷体、方正仿宋等,支持上传自定义字体
极光毛玻璃 UI 日间/夜间双主题,打印时自动隐藏面板


2. Demo 创作思路

灵感来源

作为一名书法练习者,我在日常练字中遇到几个痛点:市面上的字帖内容固定、无法定制;在线字帖工具依赖网络且常收费;打印出来的字帖往往是位图、模糊不清。于是想到用前端技术,做一个完全离线、自由定制、高清矢量输出的字帖工具。

想解决的问题

  1. 内容不可定制 — 传统字帖内容是固定的,无法针对性练习某个课文或诗词
  2. 依赖网络 — 在线工具需要联网,教室或家中网络不稳定时无法使用
  3. 输出质量差 — 很多工具截图生成位图,放大后模糊,不适合打印
  4. 缺少教学辅助 — 仅有字形,没有拼音、组词、笔画分解等教学信息

为什么做这个方向

  • 真实需求:汉字书写是中华文化的基础教育,教师和家长每天都需要练习纸
  • 技术可行:现代浏览器已支持 FontFace API、CSS Grid、window.print() 等关键能力
  • 差异化:市面上缺少"离线 + 矢量 + 教学辅助"三位一体的免费工具
  • 个人积累:练字过程中积累了多款字体的使用经验,了解用户真实需求

我自从用了电脑,打字技术增长,但字却越来越丑;自从练习写字之后,用小楷毛笔在 A4 复印纸上都能写出这个水平的字了:


3. Demo 体验地址

方式一:下载 ZIP 体验(推荐)

下载解压后,双击 字帖生成器.html 即可使用(推荐 Chrome / Edge 浏览器)。

:package: 字帖生成器.zip (6.9 MB)

包含主程序、JS 库、拼音字体。完整字体包请使用方式二。

方式二:一键启动矢量 PDF 工具(Windows)

下载完整版,双击 启动Puppeteer.bat,浏览器自动打开,点击紫色按钮一键生成矢量 PDF。

:package: 字帖生成器完整版.zip (2.6 MB)

完整版包含全部 9 款字体、Puppeteer 自动启动脚本、README 文档。

快速使用步骤

  1. 下载解压 ZIP 包
  2. 双击 字帖生成器.html(或运行 启动Puppeteer.bat)
  3. 输入汉字(如"春眠不觉晓"),点击"生成字帖"
  4. 点击打印按钮 → 选择"另存为 PDF" → 保存

演示视频


4. TRAE 实践过程

本项目全程使用 TRAE IDE 完成核心逻辑开发、调试与迭代优化。以下是开发关键步骤。

技术架构

技术点 方案 说明
架构 纯 HTML5 + CSS3 + Vanilla JS 单页面,零依赖运行
拼音转换 pinyin-pro(MIT) 自动标注声调
组词查询 cnchar + 4000+ 词库(MIT) 智能组词推荐
笔画渲染 Hanzi Writer(MIT) SVG 笔画分解
字体加载 FontFace API 动态注册 支持用户上传字体
PDF 导出 window.print() + Puppeteer 双轨方案
主题切换 CSS 变量 + data-theme 日间/夜间
开发工具 TRAE IDE AI 辅助编码、调试

关键开发步骤

步骤一:需求分析与技术选型

通过 TRAE 的多智能体并行任务规划能力,将字帖生成器拆解为:拼音转换模块、组词查询模块、田字格渲染模块、笔画分解模块、PDF 导出模块。TRAE 帮助分析各模块的技术方案和依赖关系。

步骤二:核心功能实现

  • 使用 TRAE 的 AI 辅助编码功能,快速实现拼音转换(pinyin-pro 集成)和组词查询(cnchar 集成)
  • 田字格使用 CSS Grid 布局动态生成,每个格子包含米字格线、描红字、拼音标注
  • 笔画分解利用 Hanzi Writer 输出 SVG,嵌入到每个字格中

步骤三:UI 设计与主题系统

  • 极光毛玻璃风格 UI,采用 CSS 变量驱动的日间/夜间双主题
  • TRAE 辅助完成复杂的 CSS 动画和渐变效果
  • 打印时自动隐藏控制面板,确保输出整洁

步骤四:PDF 矢量输出双轨方案

  • 方案一:浏览器 window.print() 另存为 PDF,全平台通用
  • 方案二:Puppeteer 无头浏览器生成矢量 PDF,文字可选可复制
  • TRAE 辅助解决了字体加载时序、keep-alive 请求合并、跨平台编码等关键问题

步骤五:离线打包与发布

  • 将所有 JS 库(pinyin-pro、cnchar、Hanzi Writer)内嵌到 HTML
  • 拼音字体 base64 内嵌,汉字字体使用 FontFace API 加载
  • 编写 Windows/Linux 一键启动脚本,实现"傻瓜化"操作

关键 Session ID

以下为 TRAE IDE 开发过程中关键任务的对话 Session ID,用于证明作品由 TRAE 开发完成。

序号 任务描述 Session ID 日期
1 从混合项目剥离字帖生成器、独立 HTML 打包、JS 内嵌 6a49f7e8f615ceaf1589607b.6a4a44899a9540f3b14ec753 2026-07-05
2 模板字符串修复、UI 增强(按钮渐变、打印功能)、字体配置 6a49f7e8f615ceaf1589607b.6a4a4b199a9540f3b14eca1a 2026-07-05
3 PDF 字体乱码修复、矢量输出优化、Puppeteer 脚本、Windows 编码问题 6a49f7e8f615ceaf1589607b.6a4a564b9a9540f3b14ecd6a 2026-07-05
4 JSON 解析错误修复、三层防御机制、keep-alive 去重、.bat 编码兼容 6a49f7e8f615ceaf1589607b.6a4ac6429a9540f3b14ed689 2026-07-06

如何获取 Session ID:双击 TRAE IDE 中的对话头像即可复制 Session ID。

追加的开发过程截图,感谢网友帮助,要不是我都找不回来:

(1)对应Session ID: .309409433785034:297f2e59bf9cbe03e9402224461c6dc9_6a49f7e8f615ceaf1589607b.6a4ac0459a9540f3b14ed5c4.6a4ac044b75d9ac48d921ab8:Trae CN.T(7/6/2026, 4:36:21 AM)

(2)对应Session ID:
.309409433785034:2307b9d888d863ad58b06c43cb447710_6a49f7e8f615ceaf1589607b.6a4ac6429a9540f3b14ed689.6a4ac640b75d9ac48d921aba:Trae CN.T(7/6/2026, 5:01:54 AM)

(3) 对应Session ID:
.309409433785034:b47e3e43240dd47ec799f33a2b40949b_6a49f7e8f615ceaf1589607b.6a4ac81f9a9540f3b14ed6ae.6a4ac81eb75d9ac48d921abb:Trae CN.T(7/6/2026, 5:09:51 AM)

(4) 我连文档都是用AI写的,对应Session ID: .309409433785034:799872eed994c2bacec9a5fffd7920d9_6a49f7e8f615ceaf1589607b.6a4ac9b99a9540f3b14ed718.6a4ac9b8b75d9ac48d921abc:Trae CN.T(7/6/2026, 5:16:41 AM)

我习惯不到5:00起床,所以quick pass的消耗就比较节约。

开发踩坑与经验

  1. 字体加载时序:Puppeteer 生成 PDF 时,domcontentloaded 事件在字体加载前触发,导致 PDF 乱码。解决方案:改用 networkidle0 + 显式 document.fonts.check() 验证。

  2. HTTP keep-alive 请求合并:浏览器在 keep-alive 连接上重复发送请求,导致多个 JSON 请求体被合并,JSON.parse() 失败。解决方案:三层防御(Connection: close + safeJsonParse() + 请求去重)。

  3. Windows 批处理编码:.bat 文件中文注释在 cmd.exe 的 GBK 编码下被错误解析,导致命令截断。解决方案:添加 chcp 65001 切换到 UTF-8 代码页。

  4. PowerShell 安全警告:每次运行弹出安全提示。解决方案:预设 PSDefaultParameterValues 全局参数。


5. 文件结构

distribution/
├── 字帖生成器.html          # 主程序(独立 HTML,JS+拼音字体内嵌)
├── 启动Puppeteer.bat         # Windows 一键启动脚本
├── 启动Puppeteer.ps1         # PowerShell 启动脚本
├── 启动Puppeteer.sh          # Linux/macOS 启动脚本
├── puppeteer-pdf.js          # Puppeteer PDF 矢量生成脚本
├── package.json              # Node.js 依赖配置
├── README.md                 # 完整使用文档
├── CHANGELOG.md              # 更新日志
├── 参赛文档.md               # 本文档
└── fonts/                    # 字体文件夹(9 款字体)
    ├── 姜浩硬笔楷书.ttf       # 默认汉字字体
    ├── texgyreadventor-regular.otf  # 拼音字体 (base64 内嵌)
    ├── STKAITI.TTF            # 华文楷体
    ├── FZFSB.TTF              # 方正仿宋 GBK
    ├── FZSJ-DQYBKSJW.TTF      # 方正宋简大漆
    ├── FZSJ-HAITWY.TTF        # 方正宋简海豚
    ├── TW-Kai.ttf             # 文鼎楷体
    ├── 我逸清晨体楷书.ttf
    └── 田英章楷书30Light.otf

6. 未来展望

  • 笔顺动画支持(基于 Hanzi Writer 扩展)
  • 批量导入生字表(Excel/CSV)
  • 更多田字格样式(米字格、回宫格、九宫格)
  • 云端字帖社区,共享优秀练习模板
  • 适配移动端触摸书写

7. 版权与字体说明

  • 本工具本体代码采用 MIT 许可证,可自由使用、修改、分发。
  • 内置字体仅为演示,版权归原权利人所有。请勿商用,如有商用需求请替换为开源/授权字体(推荐霞鹜文楷、思源系列)。
  • 本 Demo 已移除所有商业字体,只保留 TeX Gyre Adventor(GUST Font License,自由使用),其余字体需用户自行上传。
  • 项目作者不承担因字体使用产生的任何法律责任。

8. 致谢

  • TRAE IDE — 提供强大的 AI 辅助开发环境,让创意快速落地
  • 开源社区 — pinyin-pro、cnchar、Hanzi Writer 等优秀库为本项目奠定基础
  • 所有测试用户与大赛评委,你们的反馈让作品更完善

报名帖链接


一字一世界,一笔一乾坤。
愿这份小小的工具,能为汉字教学与书写传承尽一份力。

—— 参赛者 · 2026 年夏

2 个赞

你好!恭喜你的作品通过初赛,晋级 TRAE AI 创造力大赛复赛 :tada:
经核查,你的作品目前缺少 至少3张TRAE 使用截图 / 至少3个关键任务 Session ID(用于核验作品确由 TRAE 开发)。请在公示期内 (7 月 21-23 日) 补齐, 补交方式:直接在原来初赛参赛帖下编辑更新。逾期未补齐将自动放弃复赛晋级资格,名额由其他选手补位。
同时请尽快加入「复赛专属交流群」,点击加入https://applink.larkoffice.com/client/chat/chatter/add_by_link?link_token=6ech788c-eea8-40fc-9510-79c8929a4152,,后续复赛通知均在群内同步。请务必按时补齐,不要错过晋级机会!

2 个赞

感谢提醒,找回了,修改好了

IDE应该提供按照时间、session ID、关键词检索历史对话的功能

我想请教一下,Trae CN IDE下面,知道session id如何跳转到对应的对话里?我是大约7月5-6号用过的,但中间大量做别的事,现在只能显示 show history到2周左右的。怎么办?我查了好像没有办法直接跳到TraeCN IDE 对应的对话部分截图

下面这些办法好像都没用:

核心痛点先说清楚(Windows / English UI)

TraeCN IDE 没有接口、没有命令、不能直接输入 SessionID 在界面打开旧会话。
Trae: Show Chat History 列表看不到 = 前端UI把会话隐藏;即便数据库里完整存在对话JSON,无法一键加载进侧边聊天面板用于截图。

你最终目标:在IDE聊天面板原样渲染对话窗口 → 正常截图(保留IDE英文界面、对话样式排版)
下面给你【可行方案优先级】,全部适配英文界面 Windows。

方案1:优先尝试:找回原始 Workspace(成功率最高)

原理:会话被隐藏是因为你现在打开的项目 ≠ 当初产生会话的 workspace(文件夹路径变更,生成新哈希文件夹,历史隔离)

  1. 完全关闭 TraeCN
  2. 打开目录
%APPDATA%\Trae CN\User\workspaceStorage
  1. 逐个进入哈希文件夹,打开内部 workspace.json
    文件内 "folder" 字段 = 当初创建对话的原始项目路径
  2. 复制这个原始路径,在Trae:File → Open Folder 打开该目录
  3. 启动后 Ctrl+Shift+P → Trae: Show Chat History

如果原始工作区正确,很大概率这条会话重新出现在列表,点开直接在侧边面板展示,直接截图。

风险:项目文件夹早已删除、路径彻底无法复原 → 此方案作废,进入方案2。

方案2:数据库提取会话,手动重建对话(用来截图备选)

步骤

  1. DB Browser for SQLite 检索 state.vscdb,拿到目标session完整JSON(messages数组)
  2. JSON内包含:所有用户提问、AI回复、代码块、时间戳
  3. 二选一:
    A)在Trae新建空白会话,逐条复制消息重新粘贴
    缺点:丢失原始滚动顺序、样式;优点:原生IDE界面,可以截图。
    B)前端离线渲染HTML页面(推荐取证场景)
    我可以根据你导出的messages JSON生成一份静态HTML,完美复刻Trae聊天UI深色/英文样式,浏览器打开截图。

:warning: 重要区分:HTML截图 ≠ IDE原生窗口截图;如果对方要求必须是Trae IDE程序窗口截图,只能用A方式。

方案3:官方工单求助(仅兜底,不要抱太高期望)

英文界面环境下提交信息:

  1. Full Session ID
  2. Approximate conversation date/time
  3. 说明诉求:Need to load this chat session inside IDE UI for screenshot evidence
    限制:
    官方客服无法远程推送会话到你的本地IDE;最多协助确认这条session是否完整存在;不会提供加载会话的私有指令。

长期预防:避免以后再次遇到「能查到SessionID但是界面打不开无法截图」

  1. Always open project via .code-workspace file(英文界面 File → Save Workspace As…)锁定工作区哈希,杜绝路径变更导致会话隔离。
  2. 重要会话定期打开刷新 lastActive,防止被LRU机制挤出 Show Chat History 列表。
  3. 关键会话不要只记录SessionID!额外操作:打开对话后直接截图保存;同时导出会话JSON备份。

绝对行不通的操作,不要浪费时间

  1. 不存在命令:Trae: Load Session <sessionId>
  2. 修改settings.json没有任何会话展示时长参数
  3. 直接修改state.vscdb插入会话JSON,重启IDE不会出现在聊天列表(前端内存索引不识别手动修改的DB数据,极易造成AI服务崩溃)
  4. 没有URL链接可以直接跳转会话

补充提问,我可以针对性给你工具脚本

  1. 你是否还能恢复当初创建对话的原始项目文件夹路径?
  2. 截图是否硬性要求Trae IDE软件窗口原生画面,还是浏览器复刻界面截图可以接受?

如果你已经拿到解析完成的会话messages JSON,我可以立刻生成复刻Trae样式的离线HTML文件用于截图。

2 个赞

你好!我是集客智库·项目超市的运营。在 Trae 大赛看到你的「【生活育儿赛道】字帖生成器 · Trae创意大赛初赛 Demo」,特意体验了一下 Demo,完成度很高,交互也很顺滑,非常惊喜!想邀请你的项目入驻我们集客智库·项目超市——这里能帮项目找到合伙人、客户和投资。

大赛的结果只代表一轮比赛的反馈,不代表你项目的真实价值。好项目总会发光,我们希望你的项目能借助集客超市永远在线、持续被关注,最终拿到你想要的资源和投资。

入驻方式:微信小程序搜索「集客智库」注册,在“项目超市”上传项目,提交后告诉我们,我们免费帮你上架推广。整个过程目前完全免费。期待在集客智库看到你的项目!有任何疑问欢迎随时找我~

2 个赞

感谢您对这个项目感兴趣,你们做的也是参赛项目之一吧? 这个项目复赛帖子在这边,我已经更新: 【生活育儿、社会公益赛道】字帖生成器 — 纯前端PWA离线汉字书法练习工具(复赛版) - #29,来自 u309409433785034 可以去看看;

项目本身是MIT开源的;所以,如果确实有用,可以直接拿去就行,只须按照MIT协议来操作就可以了

非常感谢!

2 个赞

你们的网站和项目能够持续运行的确不错;我还是挂github的;

我过去看了一下,我觉得是不是要考虑请一个界面美化的把关者,实在不行让AI设计来帮忙把关也行

用好AI,界面可以更好看

2 个赞