cs2958 2023-04-10 12:01 采纳率: 50%
浏览 161
已结题

Python中pdfplumber文本提取字节重复

目标:提取年报文本
执行:Python中pdfplumber包提取PDF文字到txt
问题:对于PDF中加粗文字,解析为文本时出现字节重复
举例如下:
如以下PDF文本中,

img


Python提取的内容为:

img

而我不需要重复文本,只需要正常文字。
请问应该如何做到,是换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()

结果如下:

img

  • 写回答

2条回答 默认 最新

  • herosunly Python领域优质创作者 2023-04-10 12:53
    关注

    你把提取代码输出一些,我看看

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月27日
  • 修改了问题 4月10日
  • 修改了问题 4月10日
  • 创建了问题 4月10日