# 127助手 **Repository Path**: jsbluekitty/127-assistant ## Basic Information - **Project Name**: 127助手 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-08 - **Last Updated**: 2026-03-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PDF合并压缩工具 一个强大的Python工具,用于合并多个PDF文件并智能压缩到指定大小。 ## ✨ 功能特性 - 📁 **批量合并** - 自动合并文件夹中所有PDF文件 - 🎯 **智能压缩** - 使用二分查找算法逼近目标大小 - 🔄 **进度显示** - 实时显示合并和压缩进度 - 📊 **详细报告** - 生成JSON格式处理报告 - 🔧 **灵活配置** - 支持命令行参数和配置文件 - 🛡️ **错误处理** - 完善的错误处理和文件验证 - 💾 **自动备份** - 可选备份原始文件 ## 📦 安装依赖 ```bash pip install pymupdf tqdm psutil ``` ## 🚀 快速开始 ### 基本用法 ```bash # 合并pdf_files文件夹中的所有PDF,压缩到50MB python pdf.py -i ./pdf_files -t 50 # 指定输出文件路径 python pdf.py -i ./pdf_files -o ./final/report.pdf -t 100 # 不备份原始文件 python pdf.py -i ./pdf_files --no-backup -t 30 ``` ### 高级用法 ```bash # 使用配置文件 python pdf.py --config my_config.json # 调试模式(显示详细日志) python pdf.py -i ./pdf_files --log-level DEBUG # 试运行模式(不实际修改文件) python pdf.py -i ./pdf_files --dry-run ``` ## ⚙️ 配置文件 可以使用JSON配置文件,参考 `config_template.json`: ```json { "input_folder": "./pdf_files", "output_path": "./final/merged_output.pdf", "target_size_mb": 50, "backup_originals": true, "log_level": "INFO", "max_attempts": 5, "min_quality": 30, "max_quality": 95, "min_dpi": 72, "max_dpi": 200 } ``` ## 📁 项目结构 ``` littlehelper/ ├── pdf.py # 主程序 ├── config_template.json # 配置文件模板 ├── README.md # 说明文档 ├── pdf_files/ # 存放要处理的PDF文件 └── final/ # 输出文件夹 ``` ## 🔧 命令行参数 | 参数 | 简写 | 说明 | 默认值 | |------|------|------|--------| | `--input` | `-i` | 输入文件夹路径(必需) | - | | `--output` | `-o` | 输出文件路径 | 自动生成 | | `--target-size` | `-t` | 目标大小(MB) | 100 | | `--no-backup` | - | 不备份原始文件 | false | | `--log-level` | - | 日志级别 | INFO | | `--max-attempts` | - | 压缩最大尝试次数 | 5 | | `--config` | - | 配置文件路径 | - | | `--dry-run` | - | 试运行模式 | false | ## 📊 输出文件 处理完成后会生成: 1. **合并压缩的PDF文件** - 最终输出 2. **日志文件** - `merge_compress.log` 3. **处理报告** - JSON格式的详细报告 4. **备份文件** - 原始PDF的备份(如果启用) ## 🐛 故障排除 ### 常见问题 1. **找不到PDF文件** - 确保PDF文件在指定的输入文件夹中 - 检查文件扩展名是否为 `.pdf` 2. **内存不足** - 减少同时处理的文件数量 - 增加系统内存 - 使用 `--max-attempts` 减少压缩尝试次数 3. **压缩效果不佳** - 调整 `--min-quality` 和 `--max-quality` 参数 - 增加 `--max-attempts` 值 - 降低目标大小 ### 调试模式 ```bash python pdf.py -i ./pdf_files --log-level DEBUG ``` ## 🤝 贡献 欢迎提交Issue和Pull Request! ## 📄 许可证 MIT License