立项背景和目标: 日常处理财务报表、政务文件等敏感文档时,在线转换工具存在隐私泄露风险,商业PDF软件(如Adobe)收费高昂且功能臃肿。目标是做一款「零网络连接、双击即用」的本地桌面PDF处理工具,所有计算在用户硬件完成,杜绝数据外传。
核心功能(4大模块,16项原子功能):
①全格式双向转换:集成 LibreOffice Headless 引擎,支持 doc/docx/xls/xlsx/ppt/pptx/txt → PDF 高保真转换;逆向支持 PDF → Word(还原排版)、PDF → Excel(智能表格提取)、PDF → PPT(页面无缝转幻灯片)、PDF → 300DPI PNG序列;②PDF深度处理:无损合并、按页拆分、批量旋转、极限压缩(PyMuPDF garbage=4 + Deflate双重清理)、批量中文水印、精准选页重排(支持逻辑字符串如 1,3,5-10)、原始图像无损剥离(扫描内部二进制流提取原图,非截图);③本地OCR识别:集成Tesseract 5.4,2倍高清渲染矩阵(fitz.Matrix(2,2))提升中文识别率,支持单张图片识别和多页扫描版PDF全文提取,chi_sim+eng双语配置;④安全保护:AES-256加密/解密,支持密码设置与归档解锁。
业务流程: 用户拖入文件 → 左侧导航选择功能模块 → 核心引擎(DocumentConverter / PDFManager / OCREngine)处理 → 输出到本地指定目录,全程无网络请求,支持深色/浅色主题切换。
整体架构: 三层分离设计。表现层(PyQt5 GUI,侧边栏导航 + StackedWidget多页面切换,深/浅双主题)、逻辑层(converter.py 格式转换 + pdf_manager.py PDF操作 + ocr_engine.py OCR识别三引擎独立)、引擎层(LibreOffice Portable + Tesseract独立目录,PyInstaller打包为单EXE分发)。依赖:PyMuPDF / pdf2docx / pdfplumber / python-pptx / Pillow / pytesseract。
我的责任模块与量化结果: 独立完成全部代码。核心亮点:①原始图像无损剥离——区别于截图方案,直接读取PDF内部xref二进制流提取嵌入原图,分辨率100%还原;②精准选页重排——自研逻辑字符串解析器,支持"1,3,5-10"混合格式,转化为fitz页面区间后原子操作,避免临时文件残留;③OCR高清模式——Matrix(2,2)放大渲染再识别,相比1倍渲染中文准确率提升约30%(实测100字错误数从15降至5以内)。
难点与解决: ①PyInstaller打包后引擎路径失效:通过 sys._MEIPASS 判断运行环境,动态拼接LibreOffice和Tesseract的绝对路径,开发/打包双模式自动适配;②LibreOffice子进程在Windows下弹黑框:使用 STARTUPINFO.dwFlags |= STARTF_USESHOWWINDOW 强制隐藏控制台窗口;③PyMuPDF提取图像时RGBA透明通道导致Pillow崩溃:判断 pix.alpha 动态切换 RGB/RGBA 转换模式,兼容所有PDF图像格式。