基于 Typst 的小学生字练习卡生成工具,支持 AI 智能拼音标注,自动生成带拼音的汉字练习卡片
- 智能识别汉字:自动提取文本中的汉字,保留重复字符
- 精准拼音标注:支持 OpenAI、Azure OpenAI 等多种 AI 服务
- 自定义提示词:可配置专业的拼音生成规则
- 智能备用方案:AI 不可用时自动降级处理
- 标准化格式:txt 文本 → json 数据 → PDF 输出的完整流程
- 多字体支持:楷书、行书、隶书等传统书法字体
- 灵活配置:每个字帖独立配置,支持个性化定制
- 批量处理:一键生成多个字帖的不同字体版本
- 交互式界面:清爽的命令行操作体验
- 智能刷新:文本修改后自动重新生成拼音数据
- 预览确认:操作前智能预览,避免误操作
- 实时反馈:详细的处理进度和结果展示
想要快速了解生成效果?查看我们的案例文件:
| 字体类型 | 预览文件 | 特点描述 |
|---|---|---|
| 🖋️ 楷书 | 查看案例 | 工整规范,适合初学者 |
| ✍️ 行书 | 查看案例 | 流畅自然,提升书写速度 |
| 📜 隶书 | 查看案例 | 古朴典雅,培养书法兴趣 |
每个案例都包含:
- ✅ 188个汉字的完整练习内容
- ✅ AI生成的准确拼音标注
- ✅ 标准田字格布局设计
- ✅ 高质量PDF输出,适合打印
- Typst >= 0.11.0 (PDF 生成引擎)
- Node.js >= 16.0.0 (运行环境)
- AI API Key(可选,用于智能拼音生成)
# 1. 克隆项目
git clone https://github.com/taliove/HandwritingPrint.git
cd HandwritingPrint
# 2. 安装依赖
npm install
# 3. 启动系统
npm start主界面演示
- 配置 AI 服务(推荐)
- 创建第一个字帖
- 生成练字卡
- 创建字帖:向导式创建,支持从文本文件导入
- 编辑内容:直接编辑汉字列表,支持实时预览
- 配置定制:字体、颜色、布局等个性化设置
- 批量操作:支持多个字帖的批量管理
- 自动拼音:AI 自动为汉字生成准确拼音
- 智能提取:从文本中智能识别和提取汉字,保留重复字符
- 多服务支持:OpenAI、Azure、国产大模型等
- 自定义规则:可配置专业的拼音生成提示词
- 多字体输出:一个字帖生成多种字体版本
- 智能命名:文件名自动包含字帖、字体、字数等信息
- 批量编译:一键生成所有字帖的所有字体版本
- 格式定制:支持自定义输出文件名格式
npm start
# 选择:📝 创建字帖
# 输入字帖名称:一年级上学期生字
# 输入汉字内容:天 地 人 你 我 他...{
"enabled": true,
"provider": "openai",
"apiKey": "sk-your-api-key",
"model": "gpt-3.5-turbo",
"prompt": "请为以下汉字生成标准拼音..."
}生成的文件名示例:
一年级上学期生字-楷书-186字-2024-12-19.pdf一年级上学期生字-行书-186字-2024-12-19.pdf一年级上学期生字-隶书-186字-2024-12-19.pdf
在 examples/ 目录中提供了完整的生成案例:
一年级下学期生字练习卡-楷书-188字-2025-06-14.pdf- 楷书字体效果一年级下学期生字练习卡-行书-188字-2025-06-14.pdf- 行书字体效果一年级下学期生字练习卡-隶书-188字-2025-06-14.pdf- 隶书字体效果
这些案例展示了:
- 🎨 多种字体风格:楷书工整、行书流畅、隶书古朴
- 📏 标准田字格布局:适合小学生练字使用
- 🔤 清晰拼音标注:AI生成的准确拼音
- 🎯 专业排版质量:基于Typst的高质量PDF输出
{
"title": "一年级下学期生字练习卡",
"description": "一年级下学期必学生字",
"fonts": ["kaishu", "xingshu", "lishu"],
"colors": {
"theme": "#b2f2bb",
"border": "#40c057"
},
"content": {
"motto": "业精于勤而荒于嬉,行成于思而毁于随"
},
"output": {
"format": "$字帖名-$字体-$字数-$生成日期"
},
"layout": {
"columnCount": 12,
"wordCount": 8,
"margin": "1.2cm"
}
}{
"enabled": true,
"provider": "openai",
"apiKey": "your-api-key-here",
"baseURL": "https://api.openai.com/v1",
"model": "gpt-3.5-turbo",
"timeout": 30000,
"prompts": {
"system": "你是一个专业的拼音标注助手...",
"user": "请为以下汉字生成标准拼音:{characters}"
}
}练字打印/
├── copybooks/ # 字帖存储目录
│ ├── 字帖名.txt # 汉字列表(用户编辑)
│ ├── 字帖名.json # 标准化数据(AI生成拼音)
│ └── 字帖名.config.json # 字帖配置
├── examples/ # 案例展示目录
│ ├── 一年级下学期生字练习卡-楷书-188字-2025-06-14.pdf
│ ├── 一年级下学期生字练习卡-行书-188字-2025-06-14.pdf
│ └── 一年级下学期生字练习卡-隶书-188字-2025-06-14.pdf
├── src/ # 源代码目录
│ ├── config/ # 配置文件
│ │ ├── ai-config.json # AI配置(私密,不提交)
│ │ ├── fonts.json # 字体配置
│ │ └── defaults.json # 默认配置
│ └── templates/ # Typst模板文件
├── output/ # PDF输出目录
├── docs/ # 文档和图片
│ └── images/ # 演示图片和GIF
└── scripts/ # 核心脚本
├── copybook-system.js # 字帖管理系统
├── copybook-cli.js # 交互式界面
├── ai-service.js # AI服务管理
└── migrate-data.js # 数据迁移工具
- OpenAI:官方 ChatGPT API
- Azure OpenAI:微软 Azure 平台
- 国产大模型:通义千问、文心一言等
- 自部署模型:支持 OpenAI 兼容接口
- 文本解析:智能提取汉字,保留重复字符,过滤标点符号
- AI 调用:使用配置的 AI 服务生成拼音
- 结果验证:检查拼音格式和准确性
- 备用处理:AI 失败时使用占位符
- 数据保存:生成标准化的 JSON 数据
系统内置专业的拼音生成提示词,确保:
- 拼音格式标准(带声调)
- 多音字处理准确
- 特殊字符正确处理
- 输出格式统一
当您修改了字帖的 txt 文件后,使用智能刷新功能:
- 智能对比:显示修改前后的差异
- 安全确认:避免意外覆盖数据
- 增量更新:只为新增汉字生成拼音
- 实时反馈:详细的处理进度显示
# 主要命令
npm start # 启动交互式界面
npm run migrate # 数据迁移(旧版本升级)
# 测试命令
npm run test:system # 测试基本功能
npm run test:ai # 测试AI功能
npm run test:refresh # 测试刷新功能
npm run test:batch # 测试批量编译
npm test # 运行单元测试
# 开发命令
npm run lint # 代码检查
npm run demo:* # 各种演示脚本- AI 自动化:告别手动标注拼音的繁琐
- 批量处理:一键生成多个字帖多种字体
- 智能管理:文件自动组织,配置集中管理
- 标准拼音:AI 确保拼音准确性
- 传统字体:支持楷书、行书等书法字体
- 专业排版:基于 Typst 的高质量 PDF 输出
- 交互式界面:清爽的命令行操作
- 智能提示:每步操作都有详细指导
- 容错处理:完善的错误处理和恢复机制
- Web 界面:基于浏览器的可视化操作
- 模板系统:更多练字卡样式模板
- 云端同步:字帖数据云端备份和同步
- 多语言支持:支持其他语言的练字卡生成
- 移动端适配:支持手机和平板设备
欢迎提交 Issue 和 Pull Request!
- Fork 本项目
- 创建特性分支:
git checkout -b feature/amazing-feature - 提交更改:
git commit -m 'Add amazing feature' - 推送分支:
git push origin feature/amazing-feature - 提交 Pull Request
MIT License - 详见 LICENSE 文件