YzHCAt 发表于 2026-3-12 18:47

PDF发票合并工具

本帖最后由 YzHCAt 于 2026-3-12 18:50 编辑



https://gitee.com/yzhcat/mi2a4-gui/releases/
## 功能特点

- **PDF发票管理**:支持添加、删除PDF文件列表
- **发票金额识别**:自动识别PDF发票中的金额信息
- **批量合并**:将多个PDF发票合并到一个文件中
- **多种布局选项**:支持多种发票排列布局,每页可容纳不同数量的发票
- **拖拽支持**:支持直接拖拽PDF文件到程序界面
- **金额统计**:实时显示总金额和选中金额
- **文件信息展示**:显示文件名、金额、修改日期、大小和路径
- **交互式操作**:支持双击编辑金额、复制路径、打开文件所在目录等操作
- **打印功能**:支持合并后直接打开PDF文件,需要使用pdf阅读器打印

## 技术架构

- **前端界面**:使用aardio开发Windows GUI界面
- **后端处理**:使用Python处理PDF文件
- **PDF处理**:基于PyMuPDF(fitz)库进行PDF操作

## 使用说明

### 基本操作

1. **添加PDF文件**:
   - 点击"添加文件"按钮选择PDF文件
   - 直接拖拽PDF文件到列表区域

2. **管理文件列表**:
   - 单击选择文件
   - Ctrl+A全选所有文件
   - Delete键删除选中文件
   - 点击"Del"按钮删除选中文件
   - 点击"DelA"按钮清空所有文件

3. **修改金额**:
   - 双击列表中的金额项进行修改

4. **合并PDF**:
   - 点击"合并"按钮合并所有文件
   - 点击"合并选中"按钮仅合并选中的文件
   - 设置输出路径(默认为out.pdf)
   - 勾选"并打印"可在合并后直接打开文件

### 界面说明

- **文件列表**:显示已添加的PDF文件及其信息,支持拖拽添加文件
- **统计信息**:实时显示文件数量、选中数量、总金额和选中金额
- **布局选择**:提供多种发票排列布局选项(横向2x2、纵向2x2等)
- **操作按钮**:提供文件管理和合并功能
- **路径设置**:设置合并后的PDF保存路径
- **打印选项**:提供"并打印"复选框和"打印"按钮,方便合并后直接打开文件
- **进度条**:显示合并操作的进度
- **日志窗口**:显示程序运行日志信息

## 核心功能实现

### PDF金额识别

程序通过以下步骤识别PDF发票中的金额:
1. 提取PDF文本与坐标信息
2. 定位金额关键词("价税合计"、"合计"、"金额"、"¥"、"¥"、"小写")
3. 使用正则表达式匹配关键词附近的金额数字
4. 返回识别到的最大金额

### PDF合并算法

1. 根据选择的布局创建相应尺寸的页面(默认横向A4页面,842×595点)
2. 按照布局要求将页面划分为多个区域,绘制分割线
3. 按顺序将PDF发票缩放后放置在对应区域
4. 自动计算缩放比例,保持原始比例
5. 设置居中、偏左、偏右放置每个发票页面

## 注意事项

- 仅支持PDF格式的发票文件
- 合并后的PDF每页包含的发票数量取决于选择的布局
- 金额识别功能依赖于PDF中的文本内容,扫描件可能无法识别
- 程序会自动跳过重复添加的文件
- 双击金额列可直接修改金额值
- 双击文件名可打开文件所在目录
- 双击路径可复制文件路径到剪贴板

## 支持命令行参数

可查看MI2A4命令行参数帮助
(https://gitee.com/yzhcat/mi2-a4)

使用方法: .\mi2a4.exe [路径1] [路径2] ... [输出文件名.pdf]   
或者: .\mi2a4.exe [目录列表.txt]      
默认输出文件名: out.pdf      
-h: 查看帮助      
--print: 合并后直接打开文件      
*.txt 格式:      
      每个目录占一行      
      第一行或最后一行如果是*.pdf,会作为输出文件名      
示例:      
./差旅补助      
./出行住宿      
out1.pdf

## 快捷键

- **Ctrl+A**:全选所有文件
- **Delete**:删除选中的文件

## 技术细节

### 文件操作

- 支持拖拽添加多个PDF文件
- 自动过滤非PDF文件
- 自动检测并跳过重复文件
- 支持通过对话框选择文件

### 数据展示

- 文件列表显示:文件名、金额、修改日期、大小和路径
- 实时统计:文件数量、选中数量、总金额和选中金额
- 进度条显示合并操作进度

### 交互功能

- 双击金额列可修改金额
- 双击文件名打开文件所在目录
- 双击路径复制到剪贴板
- 支持单选、多选和全选操作
- 支持合并后直接打开或打印PDF文件
https://gitee.com/yzhcat/mi2a4-gui/releases/

YzHCAt 发表于 2026-3-15 15:41

本帖最后由 YzHCAt 于 2026-3-16 13:35 编辑

lrt721122 发表于 2026-3-15 13:34
试用导入104张发票,出现以下情况,向楼主反馈一下:①文件修改时间引用全部是错误的,2026年1月27日的日期 ...
第一个问题是日期format和时区的问题,晚点会修复一下;PDF发票中的金额识别步骤
提取PDF文本与坐标信息
定位金额关键词("价税合计"、"合计"、"金额"、"¥"、"小写")
使用正则表达式匹配关键词附近的金额数字
返回识别到的最大金额
如果小数点位置格式有问题可能会截断。
所以出问题的金额可以双击金额修改。

lrt721122 发表于 2026-3-15 13:34

试用导入104张发票,出现以下情况,向楼主反馈一下:①文件修改时间引用全部是错误的,2026年1月27日的日期,到软件内显示全部是2026年23月27日;②1~42张发票金额全部正确,精确到0.01元,从第43份开始全部是向下取整精确到1元了,如5.98显示与计算时直接是5,4.11变成4等

diauser 发表于 2026-3-14 15:27

现在电子发票多了,非常实用

a3541956 发表于 2026-3-14 16:04

感谢,这个确实很需要!

zengliang135 发表于 2026-3-14 16:09

这个很好,下来用用,谢谢!!

neimengxin 发表于 2026-3-14 16:41

很实用的软件,下载试一试。

binbinlove1993 发表于 2026-3-14 17:04

赞。能实现这个功能可真的太方便了

sinotype 发表于 2026-3-14 17:38

谢谢,这个功能很实用。

sqsq520 发表于 2026-3-14 18:20

应该是个报账小神器了,先用用看

xiaobaige 发表于 2026-3-14 18:35

已收藏,

yexiaolou 发表于 2026-3-14 18:44

这个挺好,报销好用
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: PDF发票合并工具