SlideCombine/README_Python.md
2025-11-24 17:24:27 +08:00

203 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# PDF书签合并工具 - Python版
## 📋 简介
这是PDF书签合并工具的Python版本使用Python + Tkinter开发具有以下特点
- 🚀 **运行速度快**Python优化算法处理效率高
- 📦 **绿色软件**:无需安装,打包后独立运行
- 🎯 **智能分组**:自动按文件名前缀合并相关文件
- 📊 **实时日志**:详细的处理进度和错误信息
- 🌍 **编码兼容**支持UTF-8、GBK、GB2312等多种编码
- 💾 **独立程序**:打包后无任何依赖,复制即用
## 🔧 环境要求
### 开发环境
- Python 3.7 或更高版本
- 标准库tkinter, pathlib, re, os, sys, logging
### 运行环境(打包后)
- Windows 7 SP1 或更高版本
- **无需安装Python**(打包后独立运行)
## 📁 文件结构
```
SlideCombine/
├── slide_combine.py # 主程序文件
├── build_exe.py # 自动打包脚本
├── requirements.txt # 依赖包列表(仅开发需要)
├── README_Python.md # Python版说明文档
├── app.ico # 程序图标(可选)
└── dist/ # 打包输出文件夹
└── SlideCombine.exe # 最终可执行文件
```
## 🚀 使用方法
### 方法一直接运行Python脚本
```bash
python slide_combine.py
```
### 方法二自动打包成exe
```bash
python build_exe.py
```
打包完成后,会在 `dist` 文件夹中生成 `SlideCombine.exe`,可以直接运行。
## 🎯 功能特点
### 1. 智能文件分组
- 自动识别文件名前缀
- 例如:`CH-875 1-3``CH-875 4-6``CH-875.txt`
### 2. 多格式书签解析
- 支持阿拉伯数字页码1, 2, 3...
- 支持罗马数字页码I, II, III...
- 自动识别页码位置
### 3. 编码自动检测
- 优先尝试UTF-8, GBK, GB2312
- 兜底方案Latin-1 确保文件可读
- 输出统一使用UTF-8 with BOM
### 4. 友好的用户界面
- 现代化Tkinter界面设计
- 实时日志显示,支持颜色区分
- 进度跟踪和错误提示
## 📦 部署说明
### 绿色软件特性
- 无需安装任何软件
- 不写入注册表
- 不依赖系统框架
- 可以直接在U盘运行
### 系统兼容性
- ✅ Windows 7 SP1
- ✅ Windows 8/8.1
- ✅ Windows 10/11
- ✅ 支持32位和64位系统
### 文件大小
- 压缩前约15-20 MB包含Python运行时
- 解压后内存占用约30-50 MB
## 🔄 与C#版本对比
| 特性 | Python版 | C#版 |
|------|----------|-------|
| 运行环境 | Windows全系统 | 需要.NET Framework |
| 打包大小 | 较大15-20MB | 较小30-50KB |
| 启动速度 | 稍慢 | 很快 |
| 开发效率 | 高 | 中 |
| 维护性 | 高 | 中 |
| 跨平台 | 支持 | 仅Windows |
## 🛠️ 开发说明
### 代码架构
- **BookmarkItem**: 书签数据模型
- **DocumentMetadata**: 文档元数据模型
- **BookmarkExtractor**: 书签提取器
- **FileProcessor**: 文件处理器
- **SlideCombineGUI**: 图形用户界面
### 打包技术
- 使用PyInstaller进行打包
- 单文件模式,所有依赖打包在一起
- 无窗口控制台纯GUI应用
- 支持UPX压缩减小体积
### 性能优化
- 文件I/O操作优化
- 内存使用优化
- 编码检测缓存
- 界面响应优化
## 📝 使用示例
### 目录结构示例
```
PDF文件夹/
├── CH-875 1-3/
│ └── FreePic2Pdf_bkmk.txt
├── CH-875 4-6/
│ └── FreePic2Pdf_bkmk.txt
TXT源文件/
├── CH-875 1-3.txt
├── CH-875 4-6.txt
输出路径/
└── CH-875.txt # 合并后的文件
```
### 输出格式示例
```
title:文档标题
Other titles:其他标题
Volume:卷期信息
ISBN:ISBN号码
creator:创作者
contributor:贡献者
issuedDate:发行日期
publisher:出版社
place:出版地
Classification number:分类号
page:页数
tableOfContents:
书签标题1---------------页码1<br/>
书签标题2---------------页码2<br/>
subject:主题
date:日期范围
spatial:地理信息
Other ISBN:其他ISBN
Other time:其他时间
url:链接地址
```
## 🔍 故障排除
### 常见问题
**Q1程序无法启动**
- 检查是否有杀毒软件阻止运行
- 确认文件没有损坏
- 尝试以管理员身份运行
**Q2找不到文件**
- 检查输入路径是否正确
- 确认文件权限
- 查看详细日志输出
**Q3编码问题**
- 程序已支持多种编码,会自动检测
- 如果仍有问题,请检查源文件编码
- 输出统一使用UTF-8 with BOM
**Q4打包失败**
- 确保Python环境正常
- 安装最新版PyInstaller`pip install --upgrade pyinstaller`
- 检查是否有足够的磁盘空间
## 📞 技术支持
- 开源项目,代码完全透明
- 使用Python标准库无第三方依赖
- 遵循PEP 8编码规范
- 完整的错误处理机制
## 📜 许可证
本项目采用MIT许可证可自由使用和分发。
---
**版本v2.0**
**更新日期2024-11-24**
**开发语言Python 3.7+**