本地离线 OCR · 图片不出本机

票据图片、PDF 丢进文件夹,
一键变成 Excel 汇总表

自动识别发票号码、开票日期、购销双方、明细项目与价税合计; PDF 会先逐页转成图片再识别,识别不出的一律归入「未识别」文件夹,原件分毫不动。

Windows 10 / 11 64 位 当前版本 v1.2.0 无需安装依赖 · 免联网
发票识别汇总工具 v1.2.0
D:\票据\2026-08 报销
开始识别
文件名发票号码金额状态
dzfp_2632…528772632700000015287827710.00成功
dzfp_2632…27828426327000000152878284522.10成功
dzfp_2632…53793263270000016883647931,085.84成功
未识别-0163083878_04未识别
Features

为「一堆票据图片」而生的工具

把手工抄录的工作量,压缩成点一次按钮

PDF 自动转成图片再识别

文件夹里有 PDF,工具会先逐页渲染成 JPG(命名 原文件名_页码.jpg)再识别,与原有图片一起处理。原始 PDF 分毫不动。

全是图片 → 跳过这一步,行为与以前完全一样; 纯 PDF 或图文混装 → 新建 处理后 文件夹,转换出的页图与原有图片都放进去,Excel 与「未识别」也生成在里面。

整文件夹批量识别

选中文件夹即开始,自动扫描其中全部图片(jpg / png / bmp / webp / tif),不同票种混放也能处理。

完全本地,不联网

识别引擎内置在 exe 里(RapidOCR + ONNX Runtime),票据图片不上传、不调用任何云端接口。

未识别自动归档

识别失败的图片复制到该文件夹下的「未识别」子文件夹(没有就新建),原图保留不动,方便人工补录。

双表 Excel 输出

「票据汇总」一票一行含价税合计,「明细」一项目一行含数量与金额,均带筛选与冻结表头。

坐标级版面解析

按列头坐标定位「金额 / 数量」列、按行聚类归并明细,适应不同票面的表格排布差异。

中文界面 · 进度可视

纯中文 tkinter 界面,实时进度条与结果表格,识别失败的票据以红色标出,一眼看清。

How it works

三步走完

不需要配置任何参数,也不用懂 OCR

1

把票据放进一个文件夹

拍照的、扫描的、导出的电子发票,甚至 PDF,混着放都行。

2

选文件夹,点「开始识别」

有 PDF 会先转成图片(进度条显示"准备文件…"),随后逐张识别。

3

拿结果

出现 发票识别汇总.xlsx 与等待人工处理的 未识别\;有 PDF 时它们在 处理后 文件夹内。

识别判定:发票号码、价税合计、明细项目三者缺一即判为「未识别」。多页票据(如住院费用清单附件页)按单张图片处理,附件页通常会被归入「未识别」,建议人工补录。
PDF 说明:转换是幂等的,重复运行不会产生重复副本;加密或损坏的 PDF 无法转换,会被复制到「未识别」文件夹并给出原因。
Coverage

支持这些常见票据

  • 增值税电子普通发票(数电票)
  • 全国通用电子统一票据(医院电子票据)
  • 财政医疗收费票据(含明细页)
  • 药房销售小票、陪护费 / 生活服务类发票
票据类型不在上表也没关系 —— 只要票面含「发票号码 + 价税合计 + 明细表格」标准结构,工具都能尝试解析;不支持的会安全地归入「未识别」,不会污染汇总表。
58/62真实样本识别成功
50/50金额与人工核对一致
~1.2s单张识别耗时
0上传的图片数
实测样本为 62 张真实票据图片(含 30 张医院门诊票、7 张药房票、1 张 76,927.39 元住院发票及多张财政票据明细页)。4 张未识别均为住院费用清单附件页,属预期行为。
Download

下载最新版

两个版本功能完全一致,按使用习惯任选;均已使用代码签名证书签名

推荐

单文件版

双击即用,免安装。适合放 U 盘或随手丢在桌面。

InvoiceOcrTool_v1.2.0.exe
下载单文件版

安装版

标准安装向导,带开始菜单 / 桌面快捷方式,可在「已安装的应用」中卸载。

InvoiceOcrTool_v1.2.0_setup.exe
下载安装版

想看历史版本或校验文件? 前往 Releases 页面

FAQ

常见问题

单文件版首次启动很慢,是卡住了吗?

不是。单文件版启动时要把内置的识别引擎自解压到临时目录,首次约需 5~10 秒,之后启动会更快。若想启动即用,建议选安装版。

我的图片会被上传到网上吗?

不会。识别引擎(模型文件)已打包进 exe,全程在本机 CPU 上运行,程序不发起任何网络请求。断网也能正常使用。

为什么有些图片显示「未识别」?

常见原因有三种:图片过于模糊或倾斜导致 OCR 失败;该图是住院费用清单等附件页、本身不含发票号码与价税合计;票面结构与已支持的类型差异过大。这些图片会被复制到「未识别」文件夹,方便人工补录,不会混进汇总表。

我的票据是 PDF,能直接识别吗?

可以。文件夹里有 PDF 时会先逐页转成图片(命名 原文件名_页码.jpg)再识别,原始 PDF 不会被改动。若同时有图片,会新建 处理后 文件夹,把转换出的页图与原有图片一起复制进去,Excel 与「未识别」也生成在里面;如果全是图片,这一步自动跳过。界面上的「自动把 PDF 转成图片」开关可随时取消。

汇总表里「项目金额合计」和「价税合计」为什么不相等?

这是正常的。增值税发票上明细行的金额是不含税金额,加上税额才等于价税合计。差额就是税额,不是识别错误。

「未识别」文件夹会覆盖我的原图吗?

不会。程序只做「复制」,原图始终留在原位置;目标文件已存在时也不覆盖。

支持 macOS 或手机吗?

目前只提供 Windows 10 / 11 64 位版本。macOS 用户可拉取源码,参考仓库 README 自行运行。

从 GitHub 下载太慢怎么办?

仓库自带一个纯 bash 单文件的部署脚本 deploy/update_site.sh:在宝塔面板的计划任务里粘贴一次,之后它定期跑一次,就会自动同步本页、把两个 exe 镜像到本站 downloads/ 目录并把下载链接改写成服务器直链,国内用户不再走 GitHub。三源容灾 + 内容校验 + 自动备份,拉不到或校验不过就保留原页面,不会把站点搞坏。部署方式见仓库 deploy/README.md