# mi2a4GUI **Repository Path**: yzhcat/mi2a4-gui ## Basic Information - **Project Name**: mi2a4GUI - **Description**: 使用aardio为mi2a4 :https://gitee.com/yzhcat/mi2-a4.git 写一个GUI - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 17 - **Forks**: 4 - **Created**: 2025-12-23 - **Last Updated**: 2026-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MI2A4 - PDF 发票合并工具 ## 项目简介 MI2A4 是一个基于 aardio 开发的 PDF 发票合并工具,原程序来源于 [mi2-a4](https://gitee.com/yzhcat/mi2-a4.git)。本程序为 mi2-a4 项目创建了图形用户界面 (GUI),提供了更加友好的操作体验。 ![MI2A4 界面](screenshot.png) ## 功能特点 - **PDF 发票管理**:支持添加、删除 PDF 文件列表 - **发票金额识别**:自动识别 PDF 发票中的金额信息 - **批量合并**:将多个 PDF 发票合并到一个文件中 - **多种布局选项**:支持多种发票排列布局,每页可容纳不同数量的发票 - **拖拽支持**:支持直接拖拽 PDF 文件到程序界面 - **金额统计**:实时显示总金额和选中金额 - **文件信息展示**:显示文件名、金额、修改日期、大小和路径 - **交互式操作**:支持双击编辑金额、复制路径、打开文件所在目录等操作 - **打印功能**:支持合并后直接打开 PDF 文件,需要使用 pdf 阅读器打印 ## 技术架构 - **前端界面**:使用 aardio 开发 Windows GUI 界面 - **后端处理**:使用 Python 处理 PDF 文件 - **PDF 处理**:基于 PyMuPDF(fitz) 库进行 PDF 操作 - **通信机制**:通过 aardio-py3 实现 aardio 与 Python 的通信 ## 使用说明 ### 基本操作 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 中的文本内容,扫描件可能无法识别 - 程序会自动跳过重复添加的文件 - 双击金额列可直接修改金额值 - 双击文件名默认使用 pdf 阅读器打开 - 双击路径可复制文件路径到剪贴板并打开文件所在目录 ## 支持命令行参数 可查看 MI2A4 命令行参数帮助 [MI2A4](https://gitee.com/yzhcat/mi2-a4) ![命令行参数](cmd.png) 使用方法:.\mi2a4.exe [路径 1] [路径 2] ... [输出文件名.pdf] 或者:.\mi2a4.exe [目录列表.txt] 默认输出文件名:out.pdf -h: 查看帮助 --print: 合并后直接打开文件 *.txt 格式: 每个目录占一行 第一行或最后一行如果是*.pdf,会作为输出文件名 示例: ./差旅补助 ./出行住宿 out1.pdf ## 快捷键 - **Ctrl+A**:全选所有文件 - **Delete**:删除选中的文件 ## 技术细节 ### 文件操作 - 支持拖拽添加多个 PDF 文件 - 自动过滤非 PDF 文件 - 自动检测并跳过重复文件 - 支持通过对话框选择文件 ### 数据展示 - 文件列表显示:文件名、金额、修改日期、大小和路径 - 实时统计:文件数量、选中数量、总金额和选中金额 - 进度条显示合并操作进度 ### 交互功能 - 双击金额列可修改金额 - 双击文件名打开文件所在目录 - 双击路径复制到剪贴板 - 支持单选、多选和全选操作 - 支持合并后直接打开或打印 PDF 文件