PyPDF2提取PDF文本转JSON出现大量\n的问题及解决方案咨询
PyPDF2提取PDF文本导出JSON时换行符过多的问题解决
问题原因
PyPDF2提取文本时会严格复刻PDF内部的存储结构——PDF里的文本是按小文本块拆分存储的,哪怕是段落自动换行、目录的每行条目,都会被识别成单独的换行符(\n)。这些换行大多是排版层面的,不是语义上的段落分隔,所以导出到JSON后就会出现大量冗余的\n。
无需使用replace的解决方案
方案1:调整PyPDF2的提取模式
PyPDF2 2.0及以上版本的extract_text()方法支持layout_mode参数,设置为"layout"可以让提取逻辑更贴合实际排版,自动合并同一段落内的排版换行,只保留真正的段落分隔:
from PyPDF2 import PdfReader reader = PdfReader("target.pdf") full_text = "" for page in reader.pages: # 用layout模式提取文本,减少冗余换行 page_text = page.extract_text(layout_mode="layout") full_text += page_text
方案2:换用更智能的PDF文本提取库
比如pdfplumber,它能识别PDF中的排版逻辑,自动合并同一段落内的换行,提取出更连贯的文本:
import pdfplumber full_text = "" with pdfplumber.open("target.pdf") as pdf: for page in pdf.pages: # 自动合并排版换行,输出连贯段落 page_text = page.extract_text() full_text += page_text
内容的提问来源于stack exchange,提问作者Lakeside52
相关产品推荐
相关产品推荐

