吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7880|回复: 238
收起左侧

[原创工具] PDF电子发票数据提取至Excel【5-2更新】

    [复制链接]
th4c3y 发表于 2024-4-5 13:18
本帖最后由 th4c3y 于 2024-5-2 20:56 编辑

采用python正则表达式提取
支持电子发票和数电发票,不支持图片和图片形式的PDF,不支持OFD


2.2版本:
增加重命名功能
ps:根据生成的表格里面的路径进行重命名(非实时路径,如果生成表格后实际路径无变动,表格A列的路径就是实际路径)
        同理,如果想自定义字段就在excel表里面修改或者增加,类似于bat改名,改名后无法撤销请谨慎使用(其实只要没有重新生成表格就还是可以想办法改回的,具体方法就自行摸索)
        多页的pdf只会按第1页的字段重命名。
        程序体积增加了很多,请按需更新。
        不支持win7
链接: https://pan.baidu.com/s/1LHGpJXqxlpJULTpNVWVHSQ?pwd=7dpx 提取码: 7dpx

---------------------------------------------------------------------------------------

更新2.1版本:
增加“项目名称(货物名称)”字段
优化公司名称的正则表达式


------------------------------------------------------------------------------------------------------------------------------

更新2.0版本:
优化错误信息提示方式
一些字段的正则表达式修改
表格内红字标注可能是OCR后的pdf文件(OCR后的文本杂乱无序,正则表达式很难正确抓取)

-------------------------------------------------------------------------------------------------------------------------------


更新1.6版本:
修复了发票税额是“*”导致的字段错位问题(测试发票有限,如果还有问题请评论区提出)

--------------------------------------------------------------------------------------------------------------------------------



更新1.3版本,增加对购买方名称和销售方名称的识别准确率,删除了图标图库。

目前可能会有以下问题:
1、在win10环境上打包的,win7系统可能不支持。
2、非数电发票的备注识别可能会识别不出。


使用场景:
1、避免电子发票重复报销入账(筛选发票号码或者校验码重复值)
2、检查收到的发票纳税人名称和纳税人识别号是否正确
3、根据路径筛选统计报销人电子发票金额(前提:依据报销人将发票分别存入文件夹)
4、OFD文件可以用数科OFD阅读器批量转换成pdf再统一提取

不是专业的,能力有限,只能做到这样了。

链接:https://pan.baidu.com/s/1CHosHesiVE4Lxu5iBt9bhA?pwd=l1xj
提取码:l1xj
PixPin_2024-05-02_20-40-40.jpg
PixPin_2024-04-30_15-02-38.jpg
PixPin_2024-04-30_15-03-54.jpg

免费评分

参与人数 35吾爱币 +39 热心值 +29 收起 理由
gaoziqid + 1 + 1 谢谢@Thanks!
cooliceman20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
yyi2001 + 1 我很赞同!
davidq + 1 热心回复!
lyqjqly + 1 + 1 我很赞同!
immt + 1 + 1 建议增加一个批量改名功能比如按发票号重命名发票文件,可不改原文件而是复.
冬天冷了多穿点 + 1 + 1 我很赞同!
日月与你 + 1 + 1 热心回复!
HHHT + 1 我很赞同!
ICSMY + 1 谢谢@Thanks!
QKDS + 2 + 1 能不能再弄下其他格式,如图片
tinglan2012 + 1 谢谢@Thanks!
chrisan + 1 谢谢@Thanks!
fancw17 + 1 + 1 我很赞同!
xiaozhiboy + 1 + 1 谢谢@Thanks!
bluerain09 + 1 + 1 谢谢@Thanks!
yjwkqq + 1 + 1 谢谢@Thanks!
leiouzhilei + 1 + 1 热心回复!正是我需要的
yjp732000 + 1 + 1 我很赞同!
hfsp + 1 + 1 鼓励转贴优秀软件安全工具和文档!
sccx + 1 + 1 谢谢@Thanks!
huangqiao + 1 + 1 谢谢@Thanks!
Zatoichi + 1 + 1 谢谢@Thanks!
yangye123 + 1 + 1 我很赞同!
bcmgzht + 1 + 1 谢谢@Thanks!
sonc0345 + 1 热心回复!
xingshizhuyi + 1 + 1 我很赞同!
xueyuyuan + 1 + 1 谢谢@Thanks!
sunlit + 1 + 1 谢谢@Thanks!
aqzt + 1 谢谢@Thanks!
wtwvip + 1 + 1 我很赞同!
thinhorse + 1 + 1 谢谢@Thanks!
gogo2023 + 1 + 1 谢谢@Thanks!
schtg + 1 + 1 谢谢@Thanks!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| th4c3y 发表于 2024-4-15 17:55
本帖最后由 th4c3y 于 2024-4-19 09:37 编辑

在win7环境下打包了一份上传到网盘里面了
pj666a 发表于 2024-4-6 06:51
 楼主| th4c3y 发表于 2024-5-8 12:16
cxx0515 发表于 2024-5-8 10:43
请问购买方和销售方信息是如何写的正则,我这个对于大多数没问题,就碰见个别的容易出问题
[mw_shl_code=pyt ...

数电发票的正则式很简单,一个就可以了,但是各类税盘开出的电子发票格式多多少少都各有差异,单个的正则式很难解决,有些提取的文字单位前面就不带名称两个字。
如果是正常的电子发票可以用定位提高识别率:
bboxes = [(x1, y1, x2, y1_1), (x1, y3, x2, y3_1), (x1, y2, x3, y2_1), (x1, y4, x4, page_height)
                  , (x1, y2, x5, y2_1), (x6, y5, x7, y6)]
        text1 = ""  # 购售方
        text2 = ""  # 销买方
        text3 = ""  # 货物名称
        text4 = ""  # 货物名称'数电'
        text5 = ""  # 通行费
        text6 = ""  # 备注
        for idx, bbox in enumerate(bboxes):
            # 使用矩形区域的坐标裁剪文本
            cropped_text = page.within_bbox(bbox).extract_text()
            if idx == 0:
                text1 += cropped_text
            elif idx == 1:
                text2 += cropped_text
            elif idx == 2:
                text3 += cropped_text
            elif idx == 3:
                text4 += cropped_text
            elif idx == 4:
                text5 += cropped_text
            elif idx == 5:
                text6 += cropped_text
iloveshe 发表于 2024-4-6 03:28
这个好,谢谢
heywood 发表于 2024-4-6 07:29
用用看,感谢!
nbwww 发表于 2024-4-6 07:40
测试了一下,大部分发票可以正常识别,部分发票销售方 购买方一样了   部分发票报下面的错误
处理文件 D:/Desktop/电子发票下载\dzfp_2493200000002030****_宁波市海******_20240329134625.pdf 时出错: list index out of range

另 楼主方便透露一下识别的原理吗?
zhaoxuanjun 发表于 2024-4-6 08:02
感谢楼主已经用上了
luobosier 发表于 2024-4-6 08:50
非常感谢的分享,下载试一试
Anruonuannian11 发表于 2024-4-6 08:51
谢谢楼主热心分享
 楼主| th4c3y 发表于 2024-4-6 09:07
nbwww 发表于 2024-4-6 07:40
测试了一下,大部分发票可以正常识别,部分发票销售方 购买方一样了   部分发票报下面的错误
处理文件 D:/ ...

如果购买方和销售方不是"公司"结尾的会识别不到,比如自然人和个体工商户,至于下面错误的逻辑判断是:如果pdf读取没有找到发票或者找到开票人这几个字,那么就不认为这是张发票,将不提取里面的数据。
fxd680126 发表于 2024-4-6 09:11
感谢分享!下载试试。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 提醒:禁止复制他人回复等『恶意灌水』行为,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-8 13:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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