返回
Scetia 文档扫描
C++

Scetia 文档扫描

shjk0817/scetia-report 开源项目

GitHub 仓库 →

项目简介

shjk0817/scetia-report 开源项目

说明

Scetia Report — 文档扫描管理

Qt 6 / C++20 桌面应用,支持图片与 PDF 导入、摄像头拍摄、ZXing 二维码识别,以及基于 SQLite 的文档列表管理。

功能

  • 手动上传:JPG/PNG/BMP/WebP/PDF(文件对话框 + 拖放)
  • 摄像头拍摄:实时预览、拍照后自动导入;摄像头设备在「设置」页选择(导入页不再提供设备下拉)
  • 实时文档检测:多候选评分优先纸张外缘,低频霍夫直线兜底;无目标约 1 秒后自动清空
  • 实时二维码:YOLO 定位与 ZXing 解码解耦,蓝框稳定显示、文本稍后填充;推荐模型 qrdet-n.onnx(速度与精度平衡)
  • 预览缩放:文档列表与导入预览支持「适应窗口」及临时缩放(工具栏 适应/−/%/+,可滚动查看)
  • 二维码识别:每页解码并保存原始 QR 文本
  • 报告抓取:解析 报告编号|验证码 格式二维码,内网 SQL 优先、协会网页回退
  • 文档管理:列表、缩略图预览、按文件名/QR 搜索、删除

依赖

  • Qt 6.5+(Core, Gui, Quick, QuickControls2, Qml, Multimedia, Pdf, Sql, Test)
  • CMake 3.21+
  • MSVC 2019+(Windows)
  • ZXing-cpp v2.3.0(third_party/zxing-cpp,junction 至 report-cpp 的 vendored 副本,或自行 clone)

报告字段抓取

二维码格式:Report_ID|IdentifyingCode(如 GC01-202604318|112207186227) 导入后自动抓取并入库,预览区展示:

字段来源
委托编号ConSign_ID
报告编号Report_ID
验证码IdentifyingCode
样品名称Item_Sample.SampleName
工程名称WT_Consign.ProJect_Name
标段Contract_BasicInfo.ProjectAttachName
报告日期Print_Report.Report_CreateDate
项目联系人Contract_BasicInfo.DetectionUnitLinkMan
抓取策略:仅内网 SQL(10.1.228.188 / scetiamis0718)。自动尝试 ODBC Driver 18/17 或 SQL Server 驱动。
连接串环境变量(可选,覆盖默认):
预览区可点 重新抓取 手动重试。

摄像头与实时识别

项目说明
摄像头选择设置 → 摄像头设备;保存后导入页预览自动使用所选设备
默认回退未配置或设备不可用时,使用系统默认摄像头
文档绿框优先检测纸张外缘;轮廓不足时启用霍夫直线兜底
二维码蓝框YOLO 约 200ms 定位一次,ZXing 约 400ms 解码;无 YOLO 时约 800ms 全图 ZXing 回退
1 秒清空纸张或二维码移出画面约 1 秒后,实时叠加层与识别结果自动清空
推荐模型models/qrdet-n.onnx(qrdet-s 更快、qrdet-m/l 更准但更慢)

预览缩放

  • 适应:按窗口完整显示当前页
  • − / +:在适应尺寸基础上临时放大或缩小
  • 百分比:显示当前缩放比例;切换文档或页面时自动恢复适应

开发调试(推荐)

不必每次全量编译。 日常开发用 Debug + 开发模式:

修改内容需要做什么
仅 QML(src/app/ui/qml/)保存后重启应用即可,无需编译
**C