首页 > 解决方案 > 在python中使用tabula从PDF中提取完整的表格

问题描述

我有一个PDF,表格格式如下,列名和数据用“--------”分隔

col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12 col13
----------------------------------------------------------------------
B    ABC1      F1  SSSSSS 1   32WE 161A1 1     A   DU23   162.00 85
C    ABC2      F2  DDDDDD 1   WE32 161B1 1     B   DU20   162.00 86
C    ABC3      F3  FFFFFF 1   DF45 161C1 1     C   DU20   162.00 87

当前代码:

import tabula
df = tabula.read_pdf("example.pdf", pages='all')

df 是 pdf 中所有表的数据框列表

我能够使用 tabula 提取表格内容,但可能是由于表格格式,它忽略了列名并将表格的第一行显示为列名。如何获取列名?col3 也为空,tabula 完全忽略此列。如何提取包含空列的列名的完整表

我不确定这是否可行,但是如果我从表格中删除“----------”,我相信 tabula 将能够正确读取表格。但是,我不确定如何从pdf中删除“------------”。我正在尝试使用 pypdf2 从 pdf 中提取数据,但无法更改内容。

代码 :

import PyPDF2
from PyPDF2 import PdfFileWriter, PdfFileReader

# creating a pdf file object 
pdfFileObj = open('example.pdf', 'rb') 

# creating a pdf reader object 
pdfReader = PyPDF2.PdfFileReader(pdfFileObj) 

# printing number of pages in pdf file 
i=0
pageData=''
for i in range(0,pdfReader.getNumPages()):
    # creating a page object 
    pageObj = pdfReader.getPage(i) 
    # extracting text from page 
    pageData = pageObj.extractText()
    print(pageData)

    #Modify PDF here
    #remove "-----" from the extracted text
    # rewrite modified text back to pdf

    i = i+1

# closing the pdf file object 
pdfFileObj.close() 

标签: pythonnlppypdf2tabula-py

解决方案


推荐阅读