# 文档格式助手 **Repository Path**: prococu/document-format-assistant ## Basic Information - **Project Name**: 文档格式助手 - **Description**: 一个用来调整word文件格式的小程序 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-04-09 - **Last Updated**: 2026-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 文档格式助手 v1.35 用于批量处理Word文档格式的桌面应用工具。 ## 功能特性 ### 文档处理 - ✅ 读取doc和docx格式文档 - ✅ 自动识别文档标题层级结构(支持1-4级标题) - ✅ 提取标题的字体、字号、颜色、缩进、行距、对齐方式等格式信息 - ✅ 图形界面预览文档内容和格式信息 - ✅ 支持拖拽上传文档 - ✅ 正确识别带自动编号的正文段落 ### 一键工具箱 - ✅ 【删空格】一键清除段落首尾空格及连续空格 - ✅ 【删空行】一键删除空白段落和空行 - ✅ 【图表居中】一键设置图片和表格段落居中对齐 - ✅ 智能保护封面页(从第一个一级标题后开始执行) ### 格式修改 - ✅ 单独修改某个标题的格式 - ✅ 批量修改某一级标题的格式 - ✅ 格式刷功能(支持预览窗口直接选择段落) - ✅ 自定义样式配置(支持3种自定义样式) - ✅ 段落对齐方式设置(左对齐、居中、右对齐、两端对齐) ### 标题管理 - ✅ 标题级别转换(一级/二级/三级标题、正文互转) - ✅ 文档结构树显示(可选择显示正文、表格、图片) - ✅ 预览界面标题级别颜色区分 - ✅ 预览界面标题缩进显示 ### 图片与表格 - ✅ 图片段落预览(默认占位,可开启真实缩略图预览) - ✅ 表格单元格格式修改 - ✅ 图片/表格段落居中设置 ### 操作支持 - ✅ 回退功能(支持最多回退10步操作) - ✅ 导出修改后的文档 - ✅ 异步加载文档(避免界面卡顿) ### v1.35 稳定性增强 - ✅ 回退机制支持批量操作、格式刷、标题转换、一键工具箱等复杂操作的文档快照恢复 - ✅ 修复批量导出文件名重复扩展名问题,统一导出为 docx - ✅ 修复 .doc 转换临时文件命名风险,避免覆盖或路径误替换 - ✅ 表格批量格式改为真实作用到单元格段落 - ✅ 删空格保留 Word run 边界,减少文字粘连风险 - ✅ 打包输出目录和可执行文件名统一标注 v1.35 ## 安装 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 运行程序 ```bash python main.py ``` ## 使用说明 ### 打开文档 1. 点击"打开文件"按钮或使用快捷键 `Ctrl+O` 2. 选择要处理的Word文档(.docx或.doc格式) 3. 也可直接拖拽文档文件到窗口中 4. 文档将自动加载并分析结构 ### 查看格式信息 1. 在左侧文档结构树中点击标题节点 2. 右侧格式面板将显示该标题的详细格式信息 3. 可通过复选框选择是否显示正文、表格、图片 4. 预览区默认使用图片占位以保持响应速度;需要查看真实图片时,可勾选"真实图片预览",程序会按需生成最大 480×600 的缓存缩略图。图片较多或包含高清扫描页的大文档建议关闭该选项,以减少内存占用和滚动卡顿。 5. 对 Word 中以 WMF/EMF 图片形式保存的公式,预览区会在原文字位置显示"[公式]"标记,避免公式图被放大成独立块而破坏段落结构。 ### 修改格式 #### 单个标题修改 1. 选中要修改的标题 2. 点击"编辑格式"按钮 3. 在弹出的对话框中修改格式参数 4. 点击"确定"应用修改 #### 批量修改同级标题 1. 选中某个级别的标题 2. 点击"应用到同级"按钮 3. 在弹出的对话框中修改格式参数 4. 确认后将应用到所有同级标题 #### 使用格式刷 1. 在预览窗口点击选择一个段落(获取格式) 2. 单击"格式刷"按钮,按钮变绿色 3. 在预览窗口点击目标段落应用格式 4. 或双击"格式刷"按钮进入连续模式(按钮变蓝色) 5. 按ESC键退出格式刷模式 ### 使用一键工具箱 1. 【删空格】:清除段落首尾空格及连续空格(保留单个空格) 2. 【删空行】:删除文档中的空白段落 3. 【图表居中】:将图片和表格所在段落设置为居中对齐 > 注:一键工具箱从第一个一级标题后开始执行,保护封面页内容 ### 标题级别转换 1. 选中要转换的标题或正文 2. 点击"转一级标题"、"转二级标题"、"转三级标题"或"转正文"按钮 3. 文档结构将自动刷新 ### 导出文档 1. 点击"导出"按钮或使用快捷键 `Ctrl+E` 2. 选择输出目录 3. 文档将保存为"原文件名_格式化.docx" ## 项目结构 ``` word_formatter/ ├── core/ # 核心业务逻辑 │ ├── document_loader.py # 文档加载 │ ├── structure_analyzer.py # 结构分析 │ ├── format_editor.py # 格式编辑 │ └── document_exporter.py # 文档导出 ├── gui/ # 图形界面 │ ├── main_window.py # 主窗口 │ └── style_config_dialog.py # 样式配置对话框 ├── models/ # 数据模型 │ ├── document.py # 文档模型 │ ├── heading.py # 标题节点模型 │ ├── format_info.py # 格式信息模型 │ └── custom_style.py # 自定义样式模型 ├── utils/ # 工具函数 │ ├── file_utils.py # 文件工具 │ ├── format_utils.py # 格式工具 │ ├── logger.py # 日志工具 │ └── resolution_adapter.py # 分辨率适配 ├── config/ # 配置文件 │ └── settings.py # 设置 └── constants.py # 公共常量 ``` ## 技术栈 - **Python 3.9+** - **PySide6** - GUI框架 - **python-docx** - Word文档处理 - **pywin32** - doc格式支持(Windows) ## 注意事项 1. doc格式文件需要安装Microsoft Word(仅Windows) 2. 建议优先使用docx格式以获得最佳兼容性 3. 大文档加载采用异步方式,不会阻塞界面 ## 许可证 本项目仅供学习和研究使用。 ## 更新日志 详见 [CHANGELOG.md](./CHANGELOG.md)