PDF文本转Json数据的四个插件汇总(支持pdf表格多行文本转 json)

在开发过程中遇到了 PDF 转 Data的 需求,PDF中是一页页A4纸制式的表单,类似于信用卡办理个人信息表,那么我们需要的工具应该满足

1 可读取PDF文本并转化成 语言数据

2 可精确读取每行文本 并能解析成对应一行行的 语言数据

于是开始调研,调研过程使用了

Java: tabula+pdfbox,pdf2data+itext,

python:pdfplumer,tabula-py

实际使用中 tabula能很好的识别出需要文本,但是对于较复杂的表格对象会有错误数据

而pdf2data是一个收费的itext7组件,可以定制需要的模板 去针对的识别你要的数据,需要点时间入门学习以及收费,但是确实很好用

但是上面俩种都无法很好的满足我的需求,而Java的开源项目中一个不满足需求,一个收费,而Java的开源项目中,个人没找到对pdf中表格进行单元格识别的第三方,只能目光企及python库,果然找到了读表宝库-pdfplumer,因为它支持对一个单独的表格进行解析并收集成一个数据组。

总结:调研测试中,只有pdfplumer对我的单元格有三行数据的pdf文件进行了正确排序的数据识别。

调研过程中也发现网上博客对此汇总比较少,特作此记录,并共享,必有不足,烦请见谅!

下放连接

1.tabula的使用

2.Itext-Pdf2data的使用

3.tabula-py,pdfplumer使用示例代码

对于python区的研究较少,时间较短,且由于python特性,所以篇幅也不大,直接上一段代码块

    1

    2

    3

    4

    5

    6

    7

    8

tabula-py

import tabula

 

df = tabula.read_pdf("E:\\example.pdf", encoding='utf-8', pages='all')

print(df)

for indexs in df.index:

    # 遍历打印

            print(df.loc[indexs].values[1].strip())

 

    1

    2

    3

    4

    5

    6

    7

    8

    9

   10

   11

   12

   13

pdfplumer

import pdfplumber

import pandas as pd

with pdfplumber.open("E:\\example.pdf"as pdf:

    page = pdf.pages[0]   第一页的信息

    table = page.extract_tables()  获取所有表格

    for t in table:

        print(t)

        得到的table是嵌套list类型,转化成DataFrame更加方便查看和分析

        df = pd.DataFrame(t[0:], columns=t[0])

        print(df)

 

你可能感兴趣的:(PDF文本转Json数据的四个插件汇总(支持pdf表格多行文本转 json))