MI2A4 是一个基于 aardio 开发的 PDF 发票合并工具,原程序来源于 mi2-a4。本程序为 mi2-a4 项目创建了图形用户界面 (GUI),提供了更加友好的操作体验。
- PDF 发票管理:支持添加、删除 PDF 文件列表
- 发票金额识别:自动识别 PDF 发票中的金额信息
- 批量合并:将多个 PDF 发票合并到一个文件中
- 多种布局选项:支持多种发票排列布局,每页可容纳不同数量的发票
- 拖拽支持:支持直接拖拽 PDF 文件到程序界面
- 金额统计:实时显示总金额和选中金额
- 文件信息展示:显示文件名、金额、修改日期、大小和路径
- 交互式操作:支持双击编辑金额、复制路径、打开文件所在目录等操作
- 打印功能:支持合并后直接打开 PDF 文件,需要使用 pdf 阅读器打印
- 前端界面:使用 aardio 开发 Windows GUI 界面
- 后端处理:使用 Python 处理 PDF 文件
- PDF 处理:基于 PyMuPDF(fitz) 库进行 PDF 操作
- 通信机制:通过 aardio-py3 实现 aardio 与 Python 的通信
-
添加 PDF 文件:
- 点击"添加文件"按钮选择 PDF 文件
- 直接拖拽 PDF 文件到列表区域
-
管理文件列表:
- 单击选择文件
- Ctrl+A 全选所有文件
- Delete 键删除选中文件
- 点击"Del"按钮删除选中文件
- 点击"DelA"按钮清空所有文件
-
修改金额:
- 双击列表中的金额项进行修改
-
合并 PDF:
- 点击"合并"按钮合并所有文件
- 点击"合并选中"按钮仅合并选中的文件
- 设置输出路径(默认为 out.pdf)
- 勾选"并打印"可在合并后直接打开文件
- 文件列表:显示已添加的 PDF 文件及其信息,支持拖拽添加文件
- 统计信息:实时显示文件数量、选中数量、总金额和选中金额
- 布局选择:提供多种发票排列布局选项(横向 2x2、纵向 2x2 等)
- 操作按钮:提供文件管理和合并功能
- 路径设置:设置合并后的 PDF 保存路径
- 打印选项:提供"并打印"复选框和"打印"按钮,方便合并后直接打开文件
- 进度条:显示合并操作的进度
- 日志窗口:显示程序运行日志信息
程序通过以下步骤识别 PDF 发票中的金额:
- 提取 PDF 文本与坐标信息
- 定位金额关键词("价税合计"、"合计"、"金额"、"¥"、"¥"、"小写")
- 使用正则表达式匹配关键词附近的金额数字
- 返回识别到的最大金额
- 根据选择的布局创建相应尺寸的页面(默认横向 A4 页面,842×595 点)
- 按照布局要求将页面划分为多个区域,绘制分割线
- 按顺序将 PDF 发票缩放后放置在对应区域
- 自动计算缩放比例,保持原始比例
- 居中放置每个发票页面
- 仅支持 PDF 格式的发票文件
- 合并后的 PDF 每页包含的发票数量取决于选择的布局
- 金额识别功能依赖于 PDF 中的文本内容,扫描件可能无法识别
- 程序会自动跳过重复添加的文件
- 双击金额列可直接修改金额值
- 双击文件名默认使用 pdf 阅读器打开
- 双击路径可复制文件路径到剪贴板并打开文件所在目录
可查看 MI2A4 命令行参数帮助
MI2A4

使用方法:.\mi2a4.exe [路径 1] [路径 2] ... [输出文件名.pdf]
或者:.\mi2a4.exe [目录列表.txt]
默认输出文件名:out.pdf
-h: 查看帮助
--print: 合并后直接打开文件
.txt 格式:
每个目录占一行
第一行或最后一行如果是.pdf,会作为输出文件名
示例:
./差旅补助
./出行住宿
out1.pdf
- Ctrl+A:全选所有文件
- Delete:删除选中的文件
- 支持拖拽添加多个 PDF 文件
- 自动过滤非 PDF 文件
- 自动检测并跳过重复文件
- 支持通过对话框选择文件
- 文件列表显示:文件名、金额、修改日期、大小和路径
- 实时统计:文件数量、选中数量、总金额和选中金额
- 进度条显示合并操作进度
- 双击金额列可修改金额
- 双击文件名打开文件所在目录
- 双击路径复制到剪贴板
- 支持单选、多选和全选操作
- 支持合并后直接打开或打印 PDF 文件
