
PDF专业压缩工具 v3.6  - 因改动较大，所以单独发一贴
该PDF压缩工具是一个功能丰富、性能优化的专业 PDF 处理应用，主要功能特点如下：

本次3.6版本更新是在原3.0基础上，经历3.1、3.2、3.3、3.5多个版本反复测试，最终较为成熟的版本。修正先前大型图形扫描件pdf压缩转换失败，文本型pdf转换质量不佳情形。同时增加了各个模式下自行调整压缩参数功能，使程序更具灵活性和实用性。

主要功能特点
1. 图形用户界面（GUI）
使用 tkinter + ttkbootstrap 构建美观界面，支持主题（flatly）
支持动态布局、提示信息、进度条彩虹动画效果
提供 ToolTip 提示、错误详情面板等交互元素
2. 多种压缩模式
平衡模式：质量与文件大小兼顾
高清模式：保留更多细节，适合需要较高质量的场景
MRC 压缩模式：分层压缩（背景层 + 文本 / 前景层），压缩率高且质量好
自定义模式：可自由调节 DPI、质量、色彩空间、缩放比例等参数
3. 智能分析与优化
PDF 类型检测：自动判断是矢量文本型还是扫描图像型 PDF，避免用户误判。
彩色检测：分析页面是否包含彩色元素，自动选择合适的色彩空间
大型 PDF 识别：自动识别大型文件，启用内存优化策略
激进模式：针对大文件自动降低 DPI、质量等参数以提高压缩率
4. 批量处理与并发
支持一次选择多个 PDF 文件进行批量压缩
使用 ThreadPoolExecutor 实现多线程并发处理
可自动调整并发线程数，避免内存占用过高
5. 内存与性能优化
对大型 PDF 采用逐页处理和资源释放策略
实时监控内存使用，超过阈值自动清理临时资源
对图像数据进行修复和优化，提高处理成功率
6. 错误处理与日志记录
全面的异常捕获和错误提示
详细的错误日志记录到文件
错误面板显示完整堆栈信息，方便调试
7. 跨平台与兼容性
兼容 Windows /macOS/ Linux
适配不同版本的 PyMuPDF（fitz）
支持 WebP 图像格式（如果 Pillow 支持）
8. 附加功能
输出路径自动生成：避免覆盖原文件，自动命名
图像格式选择：支持 JPEG、PNG、WebP 等多种格式
字体复制与保留：尽可能保留原 PDF 中的字体，保证文本渲染效果
去噪与锐化：MRC 模式下可对文本层进行去噪和锐化处理

代码默认详细参数说明：
平衡模式：默认 DPI 120，质量 75%，兼顾大小与清晰度
高清模式：DPI 150，质量 85%，适合图片较多的文档
MRC 模式：分层压缩（背景层质量 40%，文本层质量 85%），压缩率提升 30%+
自定义模式：支持 DPI（72-600）、质量（1-100）、色彩空间（RGB/GRAY）等参数自由调节
图像优化与格式处理
支持 JPEG、WebP、PNG 格式自动选择（WebP 需 Pillow 支持）
图像去噪（MRC 模式）、锐化（强度 1.2x）、对比度增强等预处理
动态调整图像质量：连续错误时自动降低质量，保证处理成功率
自动检测矢量文本型 PDF，关闭图像压缩以保留文字清晰度
支持 “增强文本矢量化” 选项，通过重绘文本避免锯齿（对扫描件有效）
字体复制机制：尝试保留原 PDF 字体，确保中文等特殊字体正常显示
激进模式下自动降低 DPI（最大降 30）、质量（最大降 15%）、缩放比例（最低 0.7x）
连续图像处理错误时，自动降低缩放比例、增加重试次数（最多 3 次）
MRC 模式强制使用 1.0 缩放，避免文本锯齿
大型 PDF 自动降低并发线程数（2 线程），避免内存溢出
实时监控内存使用（psutil），超过阈值（400-500MB）自动清理临时资源
大型 PDF 逐页处理并释放资源，避免一次性加载全文件
图像数据修复机制：处理不完整图像时填充像素或转换格式
压缩前检查磁盘空间（需 2 倍文件大小可用空间）
日志记录：错误信息写入 pdf_compressor.log，包含时间戳和详细描述
保存压缩模式参数、优化选项到 pdf_compressor_config.json
启动时自动加载历史配置，减少重复设置
输出文件自动重命名（原文件名_压缩版.pdf），避免覆盖原文件