基于 Python + Playwright 的自动化发票验真系统,支持命令行 (CLI) 和 桌面端 (GUI) 双模式运行。
Invoice Verifier 是一个智能化的发票验真工具,旨在解决财务报销过程中的发票核验痛点。它通过自动化技术对接税务局查验平台,实现了从 PDF 解析到自动验真的全流程处理。
-
⚡️ 双模运行:
-
CLI 模式:适合开发者和脚本集成,支持快速单张验真。
-
GUI 模式:基于 Electron 的现代化桌面应用,提供可视化操作界面(支持 macOS/Windows)。
-
-
📄 智能解析:内置 PDF 解析引擎,精准提取发票代码、号码、日期、金额等关键信息。
-
🤖 自动化验真:利用 Playwright 驱动浏览器,自动填写表单,大幅减少人工录入。
-
🖥 验证码辅助:针对复杂的验证码环节,提供大图弹窗辅助输入,优化交互体验。
-
📂 结果归档:自动生成验真结果 PDF 和日志,方便存档备查。
确保您的系统已安装以下基础环境:
-
Python 3.11+
-
Node.js 18+ (仅 GUI 模式需要)
-
Poppler (用于 PDF 解析)
# 安装 Poppler
brew install poppler
# 1. 克隆仓库
git clone https://github.com/your-username/invoice-verifier.git
cd invoice-verifier
# 2. 设置 Python 环境
cd python
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
playwright install chromium
cd ..
# 3. 安装 Node.js 依赖 (仅 GUI 模式需要)
npm install
最适合快速验证单张发票。
1. 基础验真
# 运行脚本并指定发票路径
./run.sh "/path/to/your/invoice.pdf"
2. 仅解析信息
如果不进行验真,仅提取发票内容:
source python/venv/bin/activate
python3 python/verify_invoice.py --parse-only "/path/to/your/invoice.pdf"
提供图形化界面,支持批量上传和可视化操作。
开发模式启动
# 启动 Electron 桌面应用
npm start
构建应用包
# 构建 macOS 应用 (.dmg)
npm run dist:mac
# 构建 Windows 应用 (.exe)
npm run dist:win
Invoice_Check/
├── electron/ # Electron 主进程代码
├── public/ # 前端静态资源 (HTML/CSS/JS)
├── python/ # Python 核心引擎
│ ├── verify_invoice.py # 验真逻辑入口
│ ├── core/ # 核心功能模块
│ └── requirements.txt # Python 依赖
├── server/ # Web 服务端 (Express)
├── assets/ # 项目图标与资源
├── run.sh # CLI 快速启动脚本
├── package.json # Node.js 配置与脚本
└── README.md # 项目文档
-
v1.0 (Current):
-
完成 CLI 基础验真功能,支持 PDF 解析与结果生成。
-
引入 Electron 框架,实现现代化 GUI 界面。
-
完善 GUI 交互,支持批量发票上传。
-
优化验证码输入体验 (自动聚焦、错误重试)。
-
-
v2.0: 集成 OCR 模型,实现全自动验证码识别。
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交改动 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交 Pull Request
本项目采用 MIT 许可证。