https://github.com/Yih1ko/GreatScanner
GreatScanner - 多功能文檔處理工具
📅 最後更新: 2025年7月31日 | 🐍 當前版本: 1.0.0
🌟項目概述
一個集OCR識別、文檔轉換、雲備份於一體的生產力工具,採用C++/Qt開發客户端,基於ASIO的高性能服務端架構,支持: - 圖片文字提取(中英文混合識別) - 文檔格式轉換(Word/PDF/Excel) - 截圖即時OCR - 本地->雲端歷史記錄同步 - 搜索功能
代碼約為15000行
開發歷程與致謝🛠️
當前進展核心功能開發已進入收尾階段,但受限於以下因素仍在持續優化:
開發環境侷限 - 全程基於Windows平台開發,部分跨平台兼容性體驗較差 - 早期代碼結構存在技術債務,需邊開發邊重構
能力成長曲線 - 初期編碼能力不足(現在仍有提升空間) - 部分代碼風格明顯受B站UP主(llfc主頁) 影響
🙏 特別鳴謝
後端架構主要學習自llfc前輩的公開技術分享: - 其開源項目為愛發電的精神深刻影響了本項目 - 關鍵技術方案(如ASIO線程池、MySQL連接池等)均借鑑自其工程實踐 > 注:代碼中若發現風格跳躍或重構痕跡,正是開發者技術成長的見證 🌱
技術架構
✨ 核心功能
客户端功能
- OCR識別系統
- 基於PaddleOCR的本地化識別引擎
- 共享內存IPC進程通信架構
- 支持截圖即時識別(Alt+S快捷鍵觸發)
- 文檔轉換圖片轉Word(自動排版)
- 圖片轉PDF(帶水印功能)
- 圖片轉Excel(表格識別)
-
用户系統郵箱驗證註冊/登錄
服務端特性
- 雙IO池架構
- 獨立線程池處理TCP文件傳輸和HTTP請求
- 基於ASIO的異步IO上下文池
數據層 - MySQL連接池(支持事務)
- Redis緩存驗證碼異步
- BCrypt哈希計算
- 智能搜索中文分詞(cppJieba庫集成)
- Trie樹前綴匹配多維度排序算法
📦 模塊結構
GreatScanner/
├── QtClient/ # Qt客户端
│ ├── core/ # 核心模塊
│ │ ├── ipc/ # 進程通信
│ │ ├── search/ # 搜索引擎
│ │ └── utils/ # 工具類
│ ├── pages/ # 界面模塊
│ └── resources/ # 資源文件
├── server/ # 服務端
│ ├── asio_pool/ # IO線程池
│ ├── dao/ # 數據訪問層
│ └── services/ # 業務邏輯
└── ocr_system/ # OCR處理模塊
編譯要求
- Qt 6.5+ (客户端)
- C++20 (服務端)
- OpenCV 4.5+
- PaddleOCR 2.5+
未來計劃
- 公式識別證件掃描性能優化