如何使用Python提取PDF文档中的文本
我有很多商业发票需要处理,都是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