software-copyright-cn
# 软著申请材料生成
## 依赖
确保已安装:`pip install reportlab pygments`(可选:`pip install pymupdf` 用于检查PDF页数)
## 工作流程
### 阶段一:收集基本信息
通过对话逐步收集以下信息。如果用户有代码仓库,先探索仓库自动推断可填字段,再确认。
**必填字段:**
1. **软件全称** — 简短明确,针对性强,所有材料中保持一致
2. **软件简称** — 无则留空,不填"无"
3. **版本号** — 格式 `V数字` 或 `数字`,如 V1.0
4. **软件分类** — 应用软件 / 嵌入式软件 / 中间件 / 操作系统
5. **开发的硬件环境** — ≤50字
6. **运行的硬件环境** — ≤50字
7. **开发该软件的操作系统** — ≤50字
8. **软件开发环境/开发工具** — ≤50字
9. **该软件的运行平台/操作系统** — ≤50字
10. **软件运行支撑环境/支持软件** — ≤50字
11. **编程语言** — 可多选(≤10项),预设列表见 [references/fields.md](references/fields.md)
12. **源程序量** — 整数行数
13. **开发目的** — 8-50字
14. **面向领域/行业** — 4-50字
15. **软件的主要功能** — 110-200字(含标点)
16. **软件的技术特点**:
- 技术标签(≤3项):APP/游戏/软件/教育软件/金融软件/医疗软件/地理信息软件/云计算软件/信息安全软件/大数据软件/人工智能软件/VR软件/5G软件/小程序/物联网软件/智慧城市软件
- 技术特点描述(**必填**,100字以内):除选择技术标签外,还必须填写一段技术特点的文字描述
17. **著作权人名称** — 用于文档中的权利人署名
18. **联系地址** — 真实姓名、收件单位(选填)、国家、省/市/区、详细地址、邮编、手机号
字段详细说明和示例见 [references/fields.md](references/fields.md)。
### 阶段二:信息确认
收集完成后,以表格形式输出所有字段的填写内容供用户确认:
```
| 字段 | 内容 |
|------|------|
| 软件全称 | xxx |
| ... | ... |
```
用户确认无误后,将全部信息保存为 `software_info.json`,格式:
```json
{
"software_name": "软件全称",
"software_short_name": "简称(可空)",
"version": "V1.0",
"category": "应用软件",
"dev_hardware": "...",
"run_hardware": "...",
"dev_os": "...",
"dev_tools": "...",
"run_os": "...",
"run_support": "...",
"languages": ["Python", "JavaScript"],
"source_lines": 52360,
"purpose": "...",
"domain": "...",
"main_functions": "...",
"tech_tags": ["软件", "大数据软件"],
"tech_features": "...",
"author": "著作权人名称",
"functions_detail": {
"模块名1": "描述1",
"模块名2": "描述2"
},
"contact": {
"name": "...",
"company": "...",
"country": "中国",
"province_city_district": "...",
"address": "...",
"postal_code": "...",
"phone": "..."
}
}
```
### 阶段三:生成程序鉴别材料
运行脚本生成带语法高亮的源代码PDF:
```bash
python scripts/generate_source_pdf.py <源代码目录> --name "软件全称" --version "V1.0" -o 程序鉴别材料.pdf
```
规则:
- 连续前30页 + 连续后30页(不足60页提交全部)
- 每页≥50行代码
- 页眉含软件名称和版本号
- 代码语法高亮(Pygments)
- 自动查找系统中文字体,确保中文不乱码
- 支持 `--ext` 参数添加额外扩展名
### 阶段四:生成文档鉴别材料
**方式一(推荐):从配置自动生成用户手册**
```bash
python scripts/generate_doc_pdf.py --config software_info.json -o 文档鉴别材料.pdf
```
自动生成完整的用户手册,包含:概述、系统环境、安装部署、系统架构、功能说明、操作指南、系统管理、接口说明、安全说明、常见问题、附录等章节。
**方式二:从已有文档转换**
```bash
python scripts/generate_doc_pdf.py --input manual.txt --name "软件名" --version "V1.0" --author "权利人" -o 文档鉴别材料.pdf
```
规则:
- 至少60页,每页≥30行
- 文档中的权利人署名、软件名称、版本号须与其他材料一致
- 页眉含软件名称和版本号
- 自动查找系统中文字体
如果生成的用户手册不足60页,向 `software_info.json` 的 `functions_detail` 添加更多功能模块描述后重新生成。
### 阶段五:材料清单确认
生成完毕后,输出最终材料清单:
```
✅ 软著申请材料清单
─────────────────────
1. 软件基本信息 → software_info.json
2. 程序鉴别材料 → 程序鉴别材料.pdf(XX页)
3. 文档鉴别材料 → 文档鉴别材料.pdf(XX页)
⚠️ 以下材料需用户自行准备:
- 计算机软件著作权登记申请表(在中国版权保护中心网站在线填写)
- 身份证明文件(企业:营业执照副本复印件;个人:身份证复印件)
- 如委托他人代理:授权委托书
```
## 注意事项
- 所有生成的PDF使用系统中文字体,自动兼容 macOS/Linux/Windows
- 程序鉴别材料中的代码使用 Pygments 实现语法高亮
- 所有材料中软件名称、版本号、著作权人保持一致
- 源代码自动跳过 node_modules、.git、__pycache__ 等非源码目录
- 文件编码自动尝试 UTF-8/GBK/GB2312/GB18030/Latin-1
标签
skill
ai