Skip to content

yzhcat/mi2a4GUI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MI2A4 - PDF 发票合并工具

项目简介

MI2A4 是一个基于 aardio 开发的 PDF 发票合并工具,原程序来源于 mi2-a4。本程序为 mi2-a4 项目创建了图形用户界面 (GUI),提供了更加友好的操作体验。

MI2A4 界面

功能特点

  • 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 命令行参数

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

快捷键

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

技术细节

文件操作

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

数据展示

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

交互功能

  • 双击金额列可修改金额
  • 双击文件名打开文件所在目录
  • 双击路径复制到剪贴板
  • 支持单选、多选和全选操作
  • 支持合并后直接打开或打印 PDF 文件

About

使用aardio为[mi2a4](https://github.com/yzhcat/MI2A4) 写一个GUI

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages