设为首页收藏本站

 找回密码
 立即注册

只需一步,快速开始

搜索
查看: 272|回复: 21

[实用软件] PDF发票合并工具

 火... [复制链接]
累计签到:60 天
连续签到:1 天
灌水成绩
7
99
4114
主题
帖子
积分

等级头衔

ID : 656

助理工程师

积分成就 测量币 : 4114
在线时间 : 0 小时
注册时间 : 2025-11-10
最后登录 : 2026-8-7

勋章
UID勋章
发表于 2026-4-15 18:34:30 | 显示全部楼层 |阅读模式 IP:北京


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


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


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

基本操作


  • 添加PDF文件

    • 点击"添加文件"按钮选择PDF文件
    • 直接拖拽PDF文件到列表区域

  • 管理文件列表

    • 单击选择文件
    • Ctrl+A全选所有文件
    • Delete键删除选中文件
    • 点击"Del"按钮删除选中文件
    • 点击"DelA"按钮清空所有文件

  • 修改金额

    • 双击列表中的金额项进行修改

  • 合并PDF

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

界面说明


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

PDF金额识别

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

  • 提取PDF文本与坐标信息
  • 定位金额关键词("价税合计"、"合计"、"金额"、"¥"、"¥"、"小写")
  • 使用正则表达式匹配关键词附近的金额数字
  • 返回识别到的最大金额
PDF合并算法


  • 根据选择的布局创建相应尺寸的页面(默认横向A4页面,842×595点)
  • 按照布局要求将页面划分为多个区域,绘制分割线
  • 按顺序将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文件
    https://gitee.com/yzhcat/mi2a4-gui/releases/
累计签到:129 天
连续签到:86 天
灌水成绩
3
315
12548
主题
帖子
积分

等级头衔

ID : 568

中级工程师

积分成就 测量币 : 12548
在线时间 : 1551 小时
注册时间 : 2025-9-24
最后登录 : 2026-9-15

勋章
UID勋章
发表于 2026-4-16 22:13:26 | 显示全部楼层 IP:美国
博主经验丰富,写得很靠谱。
回复

使用道具 举报

累计签到:131 天
连续签到:137 天
灌水成绩
6
311
15256
主题
帖子
积分

等级头衔

ID : 556

中级工程师

积分成就 测量币 : 15256
在线时间 : 1538 小时
注册时间 : 2025-10-24
最后登录 : 2026-9-15

勋章
UID勋章
发表于 2026-4-17 13:26:47 | 显示全部楼层 IP:美国
希望继续更新相关系列。
回复

使用道具 举报

累计签到:131 天
连续签到:88 天
灌水成绩
3
380
17531
主题
帖子
积分

等级头衔

ID : 564

中级工程师

积分成就 测量币 : 17531
在线时间 : 1552 小时
注册时间 : 2025-12-7
最后登录 : 2026-9-15

勋章
UID勋章
发表于 2026-4-28 10:07:37 | 显示全部楼层 IP:美国
结构很完整,从基础到进阶都覆盖了。
回复

使用道具 举报

累计签到:131 天
连续签到:81 天
灌水成绩
4
330
17401
主题
帖子
积分

等级头衔

ID : 535

中级工程师

积分成就 测量币 : 17401
在线时间 : 1540 小时
注册时间 : 2026-2-19
最后登录 : 2026-9-15

勋章
UID勋章
发表于 2026-4-29 10:25:45 | 显示全部楼层 IP:法国
文章结构合理,由浅入深。
回复

使用道具 举报

累计签到:130 天
连续签到:80 天
灌水成绩
2
334
16192
主题
帖子
积分

等级头衔

ID : 557

中级工程师

积分成就 测量币 : 16192
在线时间 : 1540 小时
注册时间 : 2026-1-15
最后登录 : 2026-9-15

勋章
UID勋章
发表于 2026-5-1 01:41:59 | 显示全部楼层 IP:广东东莞
思路很清晰,逻辑很顺。
回复

使用道具 举报

累计签到:133 天
连续签到:90 天
灌水成绩
2
317
13326
主题
帖子
积分

等级头衔

ID : 537

中级工程师

积分成就 测量币 : 13326
在线时间 : 1541 小时
注册时间 : 2026-2-11
最后登录 : 2026-9-15

勋章
UID勋章
发表于 2026-5-1 01:43:51 | 显示全部楼层 IP:广东东莞
对项目实战很有指导意义。
回复

使用道具 举报

累计签到:130 天
连续签到:75 天
灌水成绩
2
309
14691
主题
帖子
积分

等级头衔

ID : 546

中级工程师

积分成就 测量币 : 14691
在线时间 : 1539 小时
注册时间 : 2026-1-30
最后登录 : 2026-9-15

勋章
UID勋章
发表于 2026-5-6 17:06:59 | 显示全部楼层 IP:美国
示例丰富,理解更直观。
回复

使用道具 举报

累计签到:133 天
连续签到:76 天
灌水成绩
5
355
17791
主题
帖子
积分

等级头衔

ID : 547

中级工程师

积分成就 测量币 : 17791
在线时间 : 1538 小时
注册时间 : 2026-2-9
最后登录 : 2026-9-15

勋章
UID勋章
发表于 2026-5-6 17:27:42 | 显示全部楼层 IP:英国
感谢分享这么优质的内容。
回复

使用道具 举报

累计签到:63 天
连续签到:1 天
灌水成绩
10
102
4839
主题
帖子
积分

等级头衔

ID : 639

助理工程师

积分成就 测量币 : 4839
在线时间 : 0 小时
注册时间 : 2026-4-6
最后登录 : 2026-8-4

勋章
UID勋章
发表于 2026-5-10 07:23:26 | 显示全部楼层 IP:欧洲和中东地区
示例代码规范,值得学习。
回复

使用道具 举报

快速回复换一批
强无敌
2333333333
太及时了! 感谢楼主无私分享,正需要这个资料,赞一个! 👍✨
业界良心! 楼主这波操作太牛了,细节拉满,顶起来让更多人看到! 🌟👏
日常暖贴。 优质好贴不能沉,我来帮楼主顶上去! 📈🎈
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|精密测量技术论坛 ( 桂ICP备2026007449号-1 )

GMT+8, 2026-9-15 11:27 , Processed in 0.409463 second(s), 64 queries .

Powered by 精密测量技术论坛

© 2025-2026 联系站长

快速回复 返回顶部 返回列表