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 # 打开 PDF 文件 fp = open('x1/2023凯程333教育综合应试解析-外国教育史.pdf', 'rb') # 创建 PDF 解析器 parser = PDFParser(fp) # 创建 PDF 文档对象 document = PDFDocument(parser) # 获取 PDF 页面编号列表 page_numbers = document.get_pages_numbers() # 创建 PDF 资源管理器 rsrcmgr = PDFResourceManager() # 创建 PDF 设备对象 device = PDFDevice(rsrcmgr) # 创建 PDF 解释器 interpreter = PDFPageInterpreter(rsrcmgr, device) # 处理每一页 PDF 页面 for page_num in page_numbers: page = document.get_page(page_num) interpreter.process_page(page) layout = device.get_result() # 提取每一页的文本内容 for x in layout: if isinstance(x, LTTextBoxHorizontal): print(x.get_text().strip()) # 关闭 PDF 文件 fp.close()上述错误的代码
时间: 2023-12-09 17:03:48 浏览: 186
pdfminer3k-1.2.4.tar.rar
根据你提供的代码,我发现确实PDFDocument类没有get_pages_numbers()方法。你可以使用PDFPage.create_pages(document)来获取所有的页面,然后遍历这些页面进行处理。修改后的代码如下:
```
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)
# 创建 PDF 资源管理器
rsrcmgr = PDFResourceManager()
# 创建 PDF 设备对象
device = PDFDevice(rsrcmgr)
# 创建 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()
```
这个修改后的代码应该可以正常运行。
阅读全文