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

4.9 KiB
Raw Blame History

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-3CH-875 4-6CH-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环境正常
  • 安装最新版PyInstallerpip install --upgrade pyinstaller
  • 检查是否有足够的磁盘空间

📞 技术支持

  • 开源项目,代码完全透明
  • 使用Python标准库无第三方依赖
  • 遵循PEP 8编码规范
  • 完整的错误处理机制

📜 许可证

本项目采用MIT许可证可自由使用和分发。


版本v2.0 更新日期2024-11-24 开发语言Python 3.7+