我用AI写了一个发票批量打印工具,免费开源,3.5MB搞定


一个用 AI 写出来的电子发票批量打印工具,支持 PDF/OFD/图片,轻量版仅 3.5MB,已迭代 80+ 版本,完全免费开源,代码全程由 WorkBuddy AI 生成。


打工牛马应该都有过这种经历:月底一堆电子发票要打印报销,一张一张打开、调整、打印,重复几十上百次。更头疼的是,现在数电票全面推行,OFD 格式也越来越多,很多打印软件要么不支持 OFD,要么要付费,要么广告满天飞。

所以我想,干脆自己搞一个。

但我对 Rust 一窍不通,对桌面应用开发更是纯小白。那怎么办?让 AI 来写。

项目叫 fapiao-print(发票批量打印工具),从第一行代码到现在的 v1.9.2,全程由 WorkBuddy AI 辅助完成。我负责提需求、测试、反馈,AI 负责写代码、修 bug、优化。

GitHub:https://github.com/erma0/fapiao-print


为什么想自己做?

说实话,我之前一直用 WPS 的发票打印功能,会员期内用得很顺手。但会员过期后,那功能就没法用了。续费吧,一年下来也不少钱,就为了打个发票?

市面上其他工具我也试过一圈,各有各的问题:

  • 在线平台:发票文件要上传到他们的服务器,存在隐私风险
  • 广告收费版:免费版功能阉割严重,付费版价不菲
  • 功能缺失:不支持 OFD 格式、不支持批量排版、打印预览体验差

我就是要一个本地运行、不开网络、不传文件、免费到底的工具。说白了就是照着 WPS 那套逻辑,把它里面发票打印那块给"复刻"出来,但完全免费开源。后续还加了不少 WPS 没有的功能。

但我不会写桌面软件啊。那找 AI 呗,把需求跟 AI 说清楚,让它给我生成。


它能做什么?

一句话:把一堆不同格式的电子发票,拖进去,一键排版,直接打印或导出 PDF。

文件格式

支持 PDF / OFD / JPG / PNG / BMP / WebP / TIFF,全格式混选拖入,自动识别发票类型。

特别是 OFD——国家标准的电子发票格式,很多国外软件不认,国内工具支持得也参差不齐。AI 花了不少功夫实现了 OFD 的矢量渲染,发票信息直接提取,印章保真,拖入即用,不需要 OCR

排版布局

6 种预设布局(1×1、2×1、3×2、1×2、2×2、3×3),也可以自定义行列(1-10 × 1-10),纸张支持 A4/A5/B5/Letter/Legal 和自定义尺寸。边距间距独立可调,缩放有自适应、拉伸填充、原始大小和自定义百分比四种模式。

简单说就是:你想怎么排就怎么排,一页打几张你自己定

打印模式

两种模式:

  1. 弹出预览 — 调用系统 PDF 阅读器,看一眼再打
  2. 静默直接打印 — 零窗口弹出,直接送打印机

份数控制支持全局份数 + 单张单独份数,逐份/逐页打印,双面打印,彩色/灰度/黑白都能选。打印前还有个确认弹窗,告诉你发票数量、版面、纸张、打印机信息,防止误操作。

OCR 智能识别(可选)

如果你需要自动识别发票金额、销售方信息,可以下载 OCR 版,内置 PP-OCRv5 文字识别引擎。

这部分的代码也是 AI 写的。从 OCR 模型集成到前端识别按钮的交互逻辑,我只是告诉 AI “帮我加个一键识别功能”——然后它就给我生成了完整的实现,包括识别进度显示、结果弹窗、旋转动画这些细节。

其他贴心功能

  • 裁切线、编号标记、边框显示
  • 裁剪白边、自定义水印
  • 金额统计汇总
  • 车票票种自动标签
  • 一键跳转国家税务总局查验平台
  • 深色/浅色模式切换
  • 实时预览,支持缩放翻页
  • 快捷键:Ctrl+O 添加文件、Ctrl+P 打印

一个外行怎么用 AI 写出桌面软件?

我一开始想法很简单:找个开发框架,用最轻量的方式实现。对比了一圈发现 Electron 虽然流行,但体积大(一个空白应用就 100MB+),于是选了 Tauri——桌面应用框架,生成的可执行文件非常小。但这些都不是我选的技术,是 AI 根据我的需求推荐的。

然后我就跟 AI 说:帮我写一个发票批量打印的工具,支持拖放文件、排版、打印。AI 就吭哧吭哧开始写了。

整个过程大概是这样:

  1. 我说需求 → “支持拖放 PDF 和图片,一页排多张”
  2. AI 写代码 → 生成 Rust 后端 + 前端界面
  3. 我测试报 bug → “拖放没反应”“打印出来位置不对”
  4. AI 修 bug → 修复逻辑,重新编译
  5. 循环迭代 → 上面三步重复了 60+ 轮

很多功能都是这样加进去的:

  • “加个 OFD 支持吧” → AI 去研究 OFD 格式规范,写解析代码
  • “加个 OCR 把发票金额自动识别出来” → AI 去集成 PP-OCRv5 模型
  • “能静默打印吗,不想每次都弹预览” → AI 去调 Windows 系统的打印 API
  • “绿色版别装了吧,公司电脑没权限” → AI 做了绿色便携版

我完全看不懂 Rust 代码,也不懂桌面 API 那些东西。AI 写好,我下载编译好的 exe 跑一下,不对就跟 AI 说,AI 继续改。


AI 踩过的坑(对,AI 也会踩坑)

虽然是 AI 写代码,但遇到问题还是得 AI 来排查修复,过程一样折腾:

对话框死锁:早期版本点"打开文件"窗口就卡死。我跟 AI 说"弹窗卡住了",AI 分析半天,发现是 Windows 消息循环的冲突,调整了调用方式才解决。

拖放失效:文件拖进去没反应。AI 排查了好几种方案,最终从监听系统级拖放事件的角度才搞定。

OFD 渲染:OFD 格式五花八门,各家开票系统生成的都略有不同,字体会偏移、印章会错位。AI 反复调了好几版才兼容好。

关了还有后台进程:关掉程序后进任务管理器一看,进程还在。跟 AI 说,它加了进程树清理机制才根治。

每次出问题我就截图或者描述现象发给 AI,AI 定位问题、改代码,我再下载最新版验证。就是这么个循环,从雏形走到了今天的 v1.9.2。


下载与安装

从 GitHub Releases 页面下载:https://github.com/erma0/fapiao-print/releases

有 4 种分发文件:

文件 说明 大小
发票打印工具_x64-setup.exe 轻量版安装包 ~3.5MB
发票打印工具_x64_绿色版.exe 轻量版便携单文件 ~4.8MB
发票打印工具_x64_OCR版-setup.exe OCR 版安装包 ~24MB
发票打印工具_x64_OCR绿色版.zip OCR 版便携(exe + models/) ~26MB

怎么选?

  • 只需要排版打印 → 轻量版,仅 3.5MB
  • 需要自动识别金额、销售方信息 → OCR 版
  • 不想安装、即下即用 → 绿色版

系统要求:Windows 10 1803+ / Windows 11。Win7 需手动安装 WebView2 Runtime。


路线图

后续计划实现:

  • 全电发票版式完善 + 通行费字段支持
  • 发票去重检测(按发票号码 + 开票日期)

说在最后

这个项目从 2025 年初开始,断断续续搞了一年多。从最初只支持 PDF 的简陋版本,到现在 PDF/OFD/图片全格式 + OCR 智能识别 + 静默打印 + PDF 导出的完整工具,中间踩了无数的坑。

但说到底,我一共就写了 0 行 Rust 代码。所有代码都是 AI 写的,我做的只是不断跟 AI 提需求、测 bug、再迭代。

这大概就是现在 AI 编程最真实的案例——

一个对桌面开发一窍不通的人,靠 AI 写出了一款还不错的桌面软件,GitHub 上拿到了几十个 Star,下载量也不错。

完全免费开源,MIT 协议,没有任何广告,没有任何收费点,所有代码都在 GitHub 上。如果你也觉得好用,欢迎给个 Star ⭐,或者提个 Issue 告诉我你的需求。

GitHubhttps://github.com/erma0/fapiao-print

吾爱破解首发帖https://www.52pojie.cn/thread-2105137-1-1.html


欢迎留言交流。如果你有发票打印的需求或遇到过什么奇葩问题,评论区聊聊。


文章作者: 鸽子笼Dovecote
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 鸽子笼Dovecote !
  目录