我正在使用以下代码从PDF中提取文本。此代码适用于大多数pdf文件。但是,对于某些pdf文件,我得到的是连续的字符串,字词之间没有空格。我注意到,对于大多数从Ghostscript或PDF版本1.6及更低版本创建的pdf文件,这种情况正在发生。我可能是错的,但这就是我注意到无法提取文本的pdf的内容。请提供建议/指针如何解决此问题。
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
from pdfminer.converter import XMLConverter, HTMLConverter, TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfparser import PDFParser
import io
import os
fp = open('ML1.pdf', 'rb')
rsrcmgr = PDFResourceManager()
retstr = io.StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
page_no = 0
for pageNumber, page in enumerate(PDFPage.get_pages(fp)):
if pageNumber == page_no:
interpreter.process_page(page)
data = retstr.getvalue()
with open(os.path.join('', f'pdf page {page_no}.txt'), 'wb') as file:
file.write(data.encode('utf-8'))
data = ''
retstr.truncate(0)
retstr.seek(0)
page_no += 1