如何使用Python提取PDF文档中的文本

1 投票
1 回答
744 浏览
提问于 2025-04-18 13:23

我有很多商业发票需要处理,都是PDF格式的。有些信息,比如账单方、交易日期和金额,需要提取出来。

换句话说,我需要从每个商业发票上复制这些信息,然后粘贴到一个Excel表格里。

这些信息在PDF文档中的位置都是固定的,每个PDF上的位置都是一样的。

有没有办法让我用Python来提取这些信息,并把它们存储到Excel表格里,而不是手动复制和粘贴呢?

谢谢。

1 个回答

2

要读取PDF文件,你可以使用StringIO这个工具。

from StringIO import StringIO


pdfContent = StringIO(getPDFContent("Billineg.pdf").encode("ascii", "ignore"))
for line in pdfContent:
    print line

另外一个选择是使用pypdf

这里有个简单的例子:

from pyPdf import  PdfFileReader    
input1 = PdfFileReader(file("Billineg.pdf", "rb"))    
# print the title of document1.pdf
print "title = %s" % (input1.getDocumentInfo().title)

提取数据后,你可以把它们写入csv文件,或者如果你想做Excel表格,可以使用xlwt

获取PDF内容的方法是:

import pyPdf  
def getPDFContent(path):
    content = ""
    num_pages = 10
    p = file(path, "rb")
    pdf = pyPdf.PdfFileReader(p)
    for i in range(0, num_pages):
        content += pdf.getPage(i).extractText() + "\n"
    content = " ".join(content.replace(u"\xa0", " ").strip().split())     
    return content 

撰写回答