PDFMiner.six卡在某些分辨率图像和文本存在的文件上,所以我想如果我可以抑制布局分析,它可能会跳过这些页面并继续前进。
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import StringIO
abspath_pdf = r'C:\\Users\\shricharan.arumugam\\Desktop\\Baraka East_1 Ichron REPORT Final.pdf'
def convert_pdf_to_txt2(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
fp = open(path, 'rb')
interpreter = PDFPageInterpreter(rsrcmgr, device)
password = ""
maxpages = 0
caching = True
pagenos=set()
i=1
#test_pages=PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True)
for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
interpreter.process_page(page)
print(i)
i=i+1
text = retstr.getvalue()
fp.close()
device.close()
retstr.close()
return text
convert_pdf_to_txt2(abspath_pdf)
文档说使用-n来抑制布局分析,但有人可以告诉我如何使用它吗?
答案 0 :(得分:0)
H Shricharan-尝试在调用laparams = LAParams()之后立即设置laparams = None。 (我将对LAParams()的调用留在那里,以防万一它调用了我需要的一些初始化代码,但是在下一行中用None覆盖了laparams)。这就是pdf2txt.py中的代码似乎所做的。我遇到了与您相同的问题,到目前为止(手指交叉)似乎已经解决了该问题。 (即-似乎速度更快,并且不会卡在某些文件上,但是缺点是它现在似乎只是将转换后的文本作为一个长字符串返回,没有段落,换行符等。因此不确定是否不管您是否满意)-Mark