一、立项背景与动机
1.1 市场痛点
发票处理是财务工作中高频且繁琐的环节。传统方式下,财务人员需要手动录入发票代码、号码、金额、日期、销售方等信息,效率低且容易出错。尤其对于以下场景,痛点尤为突出:
中小微企业:没有部署大型ERP或专业发票管理系统的预算,财务人员往往身兼多职,手工录入耗时费力。
代账公司/财务共享中心:每月需处理大量客户发票,人工录入成本高,错误率难以控制。
个人报销:员工出差产生的交通票、住宿票、餐饮票等需要逐张录入报销系统,体验差。
电子发票普及后的新挑战:电子发票(PDF格式)大量替代纸质发票,但很多单位的报销系统仍要求上传图片或手动填写信息,需要将PDF转为图片并提取字段。
1.2 技术可行性
近年来,以 PaddleOCR 为代表的开源OCR技术日趋成熟,中文识别准确率显著提升,且支持CPU推理,无需昂贵GPU即可运行。同时,Python生态中 PyMuPDF(PDF页面提取)、OpenCV(图像预处理)、reportlab(PDF生成)等库的完善,使得开发一个轻量级、可离线运行的发票识别与管理工具成为可能。这为个人开发者或小团队切入这一细分场景提供了技术基础。
1.3 目标用户与产品定位
本软件定位为 “轻量级、离线可用的发票识别与报销单生成工具” ,主要面向:
中小企业财务人员
代账公司从业者
需要频繁报销的职场人士
对数据隐私有要求、不希望发票上传至云端的企业
与市面上大型财务软件(如金蝶、用友)相比,本软件不追求全流程财务管理,而是聚焦 “识别—管理—导出报销单” 这一核心链路,降低使用门槛和部署成本。与纯在线OCR服务相比,本软件 完全本地运行,发票数据不出本机,满足隐私敏感场景的需求。
1.4 差异化功能点
两栏PDF专用处理器:针对电子发票打印版常见的两栏布局,专门设计了分割识别逻辑,提升字段提取准确率。
InvoiceMaster 是一款面向中小企业财务、代账公司及个人报销场景的发票识别与管理工具,核心能力是:本地离线识别图片/PDF发票 → 自动提取关键字段 → 入库去重管理 → 导出Excel台账 → 生成带发票图片的报销单PDF。原版包含试用与许可证机制,自由版无任何次数/时间限制。
一、核心识别功能
1. 多格式发票导入
图片导入:支持 .png、.jpg、.jpeg、.bmp 等常见图片格式。
PDF导入:支持单页/多页PDF,逐页识别,自动提取页面图像进行OCR。
批量导入:一次选择多个图片或PDF文件,串行处理并显示进度,支持中途取消。
2. 发票类型自动检测
自动区分标准发票与电子发票。
电子发票识别关键词包括“电子发票”“增值税电子普通发票”“(小写)¥”等特征。
针对电子发票打印版常见的两栏布局,提供专用处理器:通过垂直投影分析分割左右栏,分别OCR后合并提取字段,提升销售方、购买方、金额等字段准确率。
3. 关键字段提取
自动提取并结构化以下字段:
发票代码 / 发票号码
开票日期
销售方名称
购买方名称
金额(价税合计)
纳税人识别号/统一社会信用代码
发票类型(标准/电子)
来源类型(图片/PDF)及PDF页码
4. 图像预处理优化
自动透视矫正(检测文档边缘)
灰度化、锐化、自适应阈值二值化
小尺寸图像自动放大
针对电子发票的对比度增强与去噪预处理
二、数据管理与去重
1. SQLite本地数据库
识别结果自动存入本地 invoices.db,无需安装数据库服务。
表结构包含哈希、发票代码、号码、日期、金额、销售方、图片路径、来源类型、PDF路径及页码等字段。
2. 哈希去重
基于文件路径、页码、发票代码/号码生成MD5哈希,重复导入自动标记为“重复”,避免台账重复记录。
3. 历史记录管理
项目:InvoiceMaster 发票识别与管理系统
角色:主要开发者/独立完成
技术栈:Python、PyQt5、PaddleOCR、OpenCV、SQLite、PyMuPDF、ReportLab、Pandas、PyInstaller
独立完成发票识别与管理工具的整体架构、GUI、OCR识别、字段解析、数据库、PDF导出及打包部署。
基于PaddleOCR实现图片/PDF发票的本地离线识别,支持批量导入、进度显示和异常回退。
设计两栏PDF发票垂直投影分割算法,分别OCR左右栏并合并提取字段,提升电子发票打印版识别准确率。
实现多级回退字段提取策略和哈希去重入库机制,支持Excel台账导出及“汇总表+粘贴页”报销单PDF自动生成。
解决PyInstaller打包中的模型路径、hashlib兼容、OpenCV常量、PyQt5插件等环境问题,支持单文件EXE分发。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论