Traceback (most recent call last): File "D:\Python\程序练习\修改后的程序\读取.py", line 30, in <module> layout = device.get_result() AttributeError: 'PDFDevice' object has no attribute 'get_result'
时间: 2024-02-09 12:10:58 浏览: 87
这个错误提示是因为在你的代码中,PDFDevice类没有定义get_result()方法。你需要检查你的代码并确保你正在使用的是正确的类和方法名。
如果你想获取页面布局(layout),你可以使用PDFPageAggregator类。你需要将PDFPageAggregator类实例化并将其传递给PDFPageInterpreter.process_page()方法。然后,你可以使用PDFPageAggregator.get_result()方法获取页面布局(layout)。
修改后的代码如下:
```
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfdevice import PDFDevice
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBoxHorizontal
from pdfminer.pdfpage import PDFPage
# 打开 PDF 文件
fp = open('x1/2023凯程333教育综合应试解析-外国教育史.pdf', 'rb')
# 创建 PDF 解析器
parser = PDFParser(fp)
# 创建 PDF 文档对象
document = PDFDocument(parser)
# 获取页面布局参数
laparams = LAParams()
# 创建 PDF 资源管理器
rsrcmgr = PDFResourceManager()
# 创建聚合器对象
device = PDFPageAggregator(rsrcmgr, laparams=laparams)
# 创建 PDF 解释器
interpreter = PDFPageInterpreter(rsrcmgr, device)
# 处理每一页 PDF 页面
for page in PDFPage.create_pages(document):
interpreter.process_page(page)
# 获取页面布局
layout = device.get_result()
# 提取每一页的文本内容
for x in layout:
if isinstance(x, LTTextBoxHorizontal):
print(x.get_text().strip())
# 关闭 PDF 文件
fp.close()
```
这个修改后的代码应该可以正常运行。
阅读全文