目标:提取年报文本
执行:Python中pdfplumber包提取PDF文字到txt
问题:对于PDF中加粗文字,解析为文本时出现字节重复
举例如下:
如以下PDF文本中,
Python提取的内容为:
而我不需要重复文本,只需要正常文字。
请问应该如何做到,是换package还是加新的函数呢
附加:使用代码如下:
import pdfplumber
def pdf2txt(filename, delLinebreaker=True):
"""读取PDF页面内容,
delLinebreaker是否删除换行符(\n),默认True删除"""
pageContent = ''
showplace = ''
try:
with pdfplumber.open( filename ) as pdf:
page_count = len(pdf.pages)
for page in pdf.pages:
# 获取当前页面的全部文本信息,包括表格中的文字
if delLinebreaker==True:
pageContent += page.extract_text().replace('\n', "") #删除换行符
else:
pageContent += page.extract_text() #不处理换行符
except Exception as e:
print( "文件为", filename, '原因为', repr(e) )
return pageContent
pdf2txt(r"report.pdf", delLinebreaker=False)
另外,尝试 pdfminer 包后,还是有相似的问题,只是重复的情况变为单词的重复,而不是字的重复:
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.pdfpage import PDFPage
rsrcmgr = PDFResourceManager()
outfp = open(r"Report.txt", 'w', encoding='utf-8')
device = TextConverter(rsrcmgr, outfp)
with open(r"Report.pdf", 'rb') as fp:
interpreter = PDFPageInterpreter(rsrcmgr, device)
for page in PDFPage.get_pages(fp):
interpreter.process_page(page)
device.close()
outfp.close()
结果如下: