# 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**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2025-12-23 - **Last Updated**: 2026-01-22 ## 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操作 ## 使用说明 ### 基本操作 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命令行参数帮助 [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文件