我正在尝试构建一个工具,从PDF文件的每一页中提取文本。到目前为止,只有pdfplumber返回可读文本。pdfplumber的示例(例如。https://github.com/jsvine/pdfplumber)显示每个页面提取的文本。因此,我做了以下操作来捕获多个页面:
import pdfplumber
with pdfplumber.open(file) as pdf:
p1 = pdf.pages[0]
p2 = pdf.pages[1]
p3 = pdf.pages[2]
p1_text = p1.extract_text()
p2_text = p2.extract_text()
p3_text = p3.extract_text()
print(p1_text, p2_text, p3_text)
我的pdf有17页。我想知道是否可以遍历列表(即0-16(,以生成p1、p2、p3…p17(with语句下的第一个块(。
我使用生成了必要的列表
file = '/Users/Guy/Coding/Crossref/sample.pdf'
from PyPDF2 import PdfFileReader
pdf = PdfFileReader(open(file,'rb'))
total_pages = pdf.getNumPages()
total_pages_range = list(range(1, total_pages))
但似乎无法将两者结合在一起。
任何帮助都将不胜感激——从Python开始。谢谢
pdfplumber.PDF
类有一个.pages
属性,该属性是一个列表,每个加载的页面包含一个pdfplumber.Page
实例。因此,如果你的PDF有n
页面,你可以像一样迭代所有页面
import pdfplumber
with pdfplumber.open(file) as pdf:
for page in pdf.pages:
print(page.extract_text())