【自荐】PDF发票合并工具

MI2A4 - PDF发票合并工具

软件名称

MI2A4 - PDF发票合并工具

应用平台

  • Windows

推荐类型

【开发者自荐】

一句简介

批量合并PDF发票工具,将多个发票PDF文件合并到一个横向A4页面中,每页包含4个发票。

mi2a4-guihttps://gitee.com/yzhcat/mi2a4-gui**

项目简介**

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

功能特点

  • PDF发票管理:支持添加、删除PDF文件列表

  • 发票金额识别:自动识别PDF发票中的金额信息(字符匹配,扫描件无效)

  • 批量合并:将多个PDF发票合并到一个文件中

  • 智能布局:每4张发票合并到一个横向A4页面,自动排列

  • 拖拽支持:支持直接拖拽PDF文件到程序界面

  • 金额统计:显示总金额和选中金额

  • 文件信息展示:显示文件名、金额、修改日期、大小和路径

技术架构

  • 前端界面:使用aardio开发Windows GUI界面

  • 后端处理:使用Python处理PDF文件

  • PDF处理:基于PyMuPDF(fitz)库进行PDF操作

  • 通信机制:通过JSON-RPC实现aardio与Python的通信

使用说明

基本操作

  1. 添加PDF文件

    • 点击"添加文件"按钮选择PDF文件

    • 直接拖拽PDF文件到列表区域

  2. 管理文件列表

    • 单击选择文件

    • Ctrl+A全选所有文件

    • Delete键删除选中文件

    • 点击"Del"按钮删除选中文件

    • 点击"DelA"按钮清空所有文件

    • 双击文件名打开所在目录

    • 双击路径复制到剪贴板

  3. 修改金额

    • 双击列表中的金额项进行修改
  4. 合并PDF

    • 点击"合并"按钮合并所有文件

    • 点击"合并选中"按钮仅合并选中的文件

    • 设置输出路径(默认为out.pdf)

界面说明

  • 文件列表:显示已添加的PDF文件及其信息

  • 统计信息:显示文件数量、选中数量、总金额和选中金额

  • 操作按钮:提供文件管理和合并功能

  • 路径设置:设置合并后的PDF保存路径

核心功能实现

PDF金额识别

程序通过以下步骤识别PDF发票中的金额:

  1. 提取PDF文本与坐标信息

  2. 定位金额关键词(“价税合计”、“合计”、“金额”、“¥”、“¥”、“小写”)

  3. 使用正则表达式匹配关键词附近的金额数字

  4. 返回识别到的最大金额

PDF合并算法

  1. 创建横向A4页面(842×595点)

  2. 将页面四等分,绘制分割线

  3. 按顺序将PDF发票缩放后放置在对应区域

  4. 自动计算缩放比例,保持原始比例

  5. 居中放置每个发票页面

注意事项

  • 仅支持PDF格式的发票文件

  • 合并后的PDF每页包含4张发票

  • 金额识别功能依赖于PDF中的文本内容,扫描件可能无法识别

  • 程序会自动跳过重复添加的文件

支持命令行参数

可查看MI2A4命令行参数帮助 MI2A4

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

截图预览:

你这又造个轮子。
PDF24 Toolbox工具集都有。很多功能

3 个赞

能省一点是一点,直接把4张发票排好到一张,还能计算金额 :face_savoring_food:

我觉得可以单独出一个12306版的,9或者12张高铁发票放一张A4纸上,顺便列表里列出日期/出发地/目的地/票价:sweat_smile:

可以,我有时间搞一个

试用了一下.

建议增加 2张合并成1张的功能.

另外, 建议能直接打印

1 个赞

打印预览也加上

更新了

不想搞,打开文件或者资源管理器的预览窗口看呗