4.9 KiB
4.9 KiB
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脚本
python slide_combine.py
方法二:自动打包成exe
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+