# 源代码汇总文档 **Repository Path**: xxxmatata/code2file ## Basic Information - **Project Name**: 源代码汇总文档 - **Description**: 源代码汇总文档软件,主要用户软著材料快速制作。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-14 - **Last Updated**: 2026-01-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 代码文件到 DOCX 转换器使用说明 ## 功能介绍 `code-to-docx.py` 是一个专业的代码文档生成工具,它可以: - 从指定目录中提取所有指定扩展名的代码文件 - 自动移除代码中的空白行 - 将代码写入到 Word 文档中 - 为文档添加页面行号 - 支持通过配置文件设置参数 - 当文档超过 60 页时,自动限制为前后 30 页 - 支持中文路径和文件名 - 支持绝对路径和相对路径 ## 安装要求 1. **Python 3.6+**:确保您的系统已安装 Python 3.6 或更高版本 2. **依赖库**: - `python-docx`:用于生成 Word 文档 - `pywin32`(Windows 系统):用于获取实际页数 3. **安装依赖**: ```bash pip install python-docx pywin32 ``` ## 使用方法 ### 使用配置文件 创建一个 `config.json` 文件,包含以下内容: ```json { "source": "backend", "output": "Code_Files.docx", "no_titles": false, "limit_pages": true, "extensions": "java,sql,xml,js,vue" } ``` 然后运行: ```bash python code-to-docx.py --config config.json ``` ## 配置文件详解 JSON 配置文件支持以下参数: | 参数 | 类型 | 说明 | 默认值 | |------|------|------|--------| | `source` | 字符串 | 源代码目录路径 | `backend` | | `output` | 字符串 | 输出 DOCX 文件名称 | `Code_Files.docx` | | `no_titles` | 布尔值 | 是否禁用文件名作为标题 | `false` | | `limit_pages` | 布尔值 | 是否限制文档页数 | `false` | | `extensions` | 字符串或数组 | 要处理的文件扩展名 | `java` | ## 输出文档特点 1. **页面设置**: - 边距:2.54cm(标准边距) - 字体:Arial 8pt(确保每页超过 55 行) - 行号:每页重新开始编号 2. **文档结构**: - 默认:每个 Java 文件作为一个章节,包含文件路径标题 - 禁用标题模式:直接罗列所有代码,无标题分隔 3. **页数限制**: - 当文档超过 60 页时,只保留前后 30 页 - 中间部分用 "..." 省略标记代替 - 确保最终文档不超过 60 页 ## 注意事项 1. **路径处理**: - 支持绝对路径和相对路径 - 支持中文路径和文件名 - 相对路径会自动转换为绝对路径 2. **性能考虑**: - 处理大量 Java 文件时可能需要较长时间 - 页数限制功能需要启动 Word 应用程序,可能会占用较多内存 3. **兼容性**: - 页数限制功能仅在 Windows 系统上可用(需要 Word 应用程序) - 在其他系统上,将使用段落估算作为后备方案 4. **错误处理**: - 如果无法读取某个 Java 文件,会在文档中显示错误信息 - 如果无法获取实际页数,会使用原始文档而不进行页数限制 ## 故障排除 ### 常见问题 1. **无法获取实际页数**: - 确保已安装 Word 应用程序 - 确保 `pywin32` 库已正确安装 - 检查文件路径是否包含特殊字符 2. **文档页数估算不准确**: - 这是正常现象,因为页数计算依赖于 Word 应用程序 - 脚本会使用段落数作为后备估算方法 3. **中文路径显示乱码**: - 确保配置文件使用 UTF-8 编码 - 确保 Python 环境支持 UTF-8 编码 ## 示例输出 运行脚本后,您将看到类似以下的输出: ``` 从以下文件加载配置: config.json source_dir: D:\project\backend output_file: Code_Files.docx no_titles: False limit_pages: True output_file: Code_Files.docx 处理以下扩展名的文件: ['java', 'sql', 'xml', 'js', 'vue'] 使用的源代码目录: D:\project\backend 找到 105 个代码文件 总段落数: 315 文档的实际页数: 228 文档超过60页。限制为前后30页... 总段落数: 315 计算得到的每页段落数: 1.381578947368421 前30页段落数: 41 后30页段落数: 41 后30页起始段落数: 274 ... 省略中间内容 ... 文档已限制为前后30页(基于段落估算)。 最终文档已保存到: Code_Files.docx ``` ## 许可证 本脚本为开源工具,可自由使用和修改。 ## 联系方式 如有任何问题或建议,请联系脚本作者。