我有大量具有不同结构的PDF,我需要从中提取文本并找到一些关键指标。
我正在使用 pyPdf 模块,如果PDF没有检索任何文本,我也使用 PDF Miner 。
问题在于,对于某些文件,没有模块可以工作,因为没有从PDF中提取文本。我看到其中一些被扫描或只有图像PDF,但其中一些似乎有一个恒定的结构,可以解析。
以下是我使用的两个功能,也许我遗漏了一些东西:
def getPDFContent(path):
content = ""
pdf = pyPdf.PdfFileReader(file(path, "rb"))
for i in range(0, pdf.getNumPages()):
content += pdf.getPage(i).extractText() + " "
content = " ".join(content.replace(u"/xa0", " ").strip().split())
return content
mt = getPDFContent(filename).encode("ascii", "xmlcharrefreplace")
def getPDFContent(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
fp = file(path, 'rb')
interpreter = PDFPageInterpreter(rsrcmgr, device)
password = ""
maxpages = 0
caching = True
pagenos=set()
for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
interpreter.process_page(page)
retstr.write("nextpage")
text = retstr.getvalue()
fp.close()
device.close()
retstr.close()
return text