如何提取PDF多页文本并保存至文本文档?
修改代码实现多页PDF文本提取并保存到文件
修改后的完整代码
import PyPDF2 # 打开目标PDF文件 pdf_path = 'C:\\sem1\\691-project\\Dataset\\Maths\\A Spiral Workbook for Discrete Mathematics.pdf' pdf_file_obj = open(pdf_path, 'rb') pdf_reader = PyPDF2.PdfReader(pdf_file_obj) # 获取PDF总页数 total_pages = len(pdf_reader.pages) print(f"PDF总页数: {total_pages}") # 定义要提取的页面范围(索引从0开始,示例对应第10到90页) start_page_idx = 9 end_page_idx = 89 # 打开输出文本文件,以UTF-8编码写入 output_file = 'extracted_pdf_text.txt' with open(output_file, 'w', encoding='utf-8') as f: # 遍历指定范围内的每一页 for idx in range(start_page_idx, end_page_idx + 1): page = pdf_reader.pages[idx] page_text = page.extract_text() # 写入页码标识和页面文本,添加分隔符提升可读性 f.write(f"--- 第 {idx + 1} 页 ---\n") f.write(page_text) f.write("\n\n") # 关闭PDF文件对象 pdf_file_obj.close() print(f"提取完成,文本已保存至 {output_file}")
关键改动说明
- 批量页面遍历:通过
for循环遍历指定的页面索引范围,替代原代码的单页索引调用,实现多页文本提取。如果需要提取全部页面,只需将循环范围改为range(total_pages)。 - 文本文件保存:使用
with上下文管理器处理文本文件的打开与写入,自动管理文件资源;指定encoding='utf-8'避免特殊字符乱码问题。 - 可读性优化:在每页文本前添加页码分隔标记,方便后续查看不同页面的内容。
- 灵活的范围控制:通过
start_page_idx和end_page_idx可以自由调整要提取的页面区间,注意PyPDF2的页面索引从0开始,实际页码=索引+1。
内容的提问来源于stack exchange,提问作者Sindhu
相关产品推荐
相关产品推荐

