# Pdf_Split_Tool **Repository Path**: mysuperboy/pdf-split-tool ## Basic Information - **Project Name**: Pdf_Split_Tool - **Description**: 把一个打开都费劲的大 PDF,变成几个用起来顺手的小 PDF。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-04-19 - **Last Updated**: 2026-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PDF拆分小工具 一个轻量级的PDF拆分工具,支持按页数拆分PDF文件,支持批量处理。 ## 功能特性 - 图形化用户界面,操作简单直观 - 支持单个或批量选择PDF文件 - 支持拖拽文件到界面 - 按指定页数拆分PDF - 自定义输出文件名格式 - 实时显示拆分进度 - 自动保存使用设置 - 删除单个文件功能 - 打开输出目录功能 - 应用图标支持 ## 环境要求 - Python 3.8 或更高版本 - Windows 10/11 ## 安装依赖 ```bash pip install -r requirements.txt ``` 或手动安装: ```bash pip install PyQt5>=5.15.0 pip install pypdf>=3.0.0 ``` ## 使用方法 1. 运行程序: ```bash python src/main.py ``` 或使用uv: ```bash uv run python src/main.py ``` 2. 操作步骤: - 点击"选择文件"按钮或直接拖拽PDF文件到文件列表区域 - 设置每段页数(例如:每5页拆分为一个文件) - 选择输出目录(默认使用桌面的PDF_Split_Output文件夹) - 自定义文件名格式(可选) - 点击"开始拆分"按钮 - 拆分完成后可点击"打开目录"查看生成的文件 ## 文件名格式说明 支持以下占位符: - `{original}` - 原文件名(不含扩展名) - `{index}` - 拆分后的文件序号 示例: - `{original}_part{index}` → `document_part1.pdf`, `document_part2.pdf` - `{original}_{index}` → `document_1.pdf`, `document_2.pdf` ## 项目结构 ``` PdfCutDownPy/ ├── src/ │ ├── __init__.py │ ├── main.py # 程序入口 │ ├── gui/ │ │ ├── __init__.py │ │ └── main_window.py # 主窗口 │ ├── core/ │ │ ├── __init__.py │ │ ├── pdf_splitter.py # PDF拆分核心逻辑 │ │ └── file_handler.py # 文件处理 │ └── utils/ │ ├── __init__.py │ └── helpers.py # 辅助函数 ├── logo/ # 应用图标文件夹 ├── requirements.txt ├── README.md ├── PRD.md └── LICENSE ``` ## 技术栈 - **GUI框架**: PyQt5 - **PDF处理**: pypdf ## 打包成EXE ### 环境要求 - Python 3.8 或更高版本 - Windows 10/11 ### 智能环境检测 所有打包脚本都支持自动检测: - **uv** - 如果系统安装了 uv,优先使用 - **pip** - 如果没有 uv,则使用 pip - 如果两者都没有,会提示安装 uv(推荐) ### 打包脚本自动功能 - 自动清理旧的 `dist` 和 `build` 目录 - 自动安装所需依赖 - 自动使用适合环境的打包方式 --- ### 方法一:使用 PowerShell 脚本(推荐) 使用 `build.ps1`,这是最稳定的方式: 1. 右键点击 `build.ps1`,选择「使用 PowerShell 运行」 2. 脚本会自动检测环境(uv/pip) 3. 等待打包完成 4. 打包好的EXE文件在 `dist/` 目录下:`PDF_Split_Tool.exe` --- ### 方法二:使用批处理脚本(带 spec 配置) 使用 `build_with_spec.bat`,推荐用于正式打包: 1. 双击运行 `build_with_spec.bat` 2. 脚本会自动检测环境(uv/pip) 3. 等待打包完成 4. 打包好的EXE文件在 `dist/` 目录下:`PDF_Split_Tool.exe` --- ### 方法三:使用批处理脚本(简单打包) 使用 `build.bat`,简单快捷: 1. 双击运行 `build.bat` 2. 脚本会自动检测环境(uv/pip) 3. 等待打包完成 4. 打包好的EXE文件在 `dist/` 目录下:`PDF_Split_Tool.exe` --- ### 方法四:手动使用 PyInstaller 如果你想手动打包,可以按以下步骤操作: #### 步骤 1:安装依赖 **使用 uv(推荐):** ```bash uv pip install -r requirements.txt ``` **使用 pip:** ```bash python -m pip install -r requirements.txt ``` #### 步骤 2:打包 **使用 spec 文件(推荐,最稳定):** ```bash # 使用 uv uv run pyinstaller --clean pdf_splitter.spec # 或使用 pip python -m PyInstaller --clean pdf_splitter.spec ``` **直接打包(不使用 spec):** ```bash # 使用 uv uv run pyinstaller --clean --noconsole \ --name "PDF_Split_Tool" \ --icon "logo/j9QoTbcRXrvCiMWABxe4C_32x32.ico" \ --add-data "logo;logo" \ --windowed \ --onefile \ src/main.py # 或使用 pip python -m PyInstaller --clean --noconsole \ --name "PDF_Split_Tool" \ --icon "logo/j9QoTbcRXrvCiMWABxe4C_32x32.ico" \ --add-data "logo;logo" \ --windowed \ --onefile \ src/main.py ``` --- ### 打包参数说明 | 参数 | 说明 | |------|------| | `--clean` | 清理临时文件 | | `--noconsole` / `--windowed` | 不显示控制台窗口 | | `--name "PDF_Split_Tool"` | 指定输出文件名 | | `--icon` | 设置应用图标(必须是 ICO 格式) | | `--add-data "logo;logo"` | 包含 logo 文件夹(Windows 用分号分隔) | | `--onefile` | 打包成单个 EXE 文件 | --- ### 打包后的使用 1. **运行 EXE**:直接双击 `dist/PDF_Split_Tool.exe` 即可运行 2. **无需 Python**:打包后的 EXE 是独立的,不需要安装 Python 3. **首次运行**:首次运行可能需要几秒钟解压,之后会很快 4. **杀毒软件**:如果杀毒软件误报,请将程序添加到信任列表 --- ### 常见问题 **Q: 打包失败怎么办?** A: 确保已安装 Python 3.8+,并运行打包脚本前检查环境。 **Q: EXE 文件很大?** A: 因为包含了 Python 运行时和所有依赖库,这是正常的。 **Q: 如何修改应用图标?** A: 替换 `logo/j9QoTbcRXrvCiMWABxe4C_32x32.ico` 为你自己的 ICO 文件,然后重新打包。 **Q: uv 和 pip 有什么区别?** A: uv 是新一代的 Python 包管理器,速度更快,推荐使用。 ## 许可证 MIT License