pytho3 提取pdf文件的文本内容

1、安装模块:

pip install pdfminer3k

2、代码提取pdf文件

# pip install pdfminer3k

from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter, PDFTextExtractionNotAllowed
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LTTextBoxHorizontal, LAParams, LTTextLineHorizontal, LTFigure, LTRect, LTLine, LTCurve




def get_one_pdf_text(pd_file_bytes):
    text = ""
    #  pdf文件解析对象
    parser = PDFParser(pd_file_bytes)

    # print(parser)
    #  pdf文档对象
    document = PDFDocument()
    parser.set_document(document)
    document.set_parser(parser)

    #  初始化文档密码
    document.initialize()
    if document.is_extractable:
        print(True)
    else:
        raise PDFTextExtractionNotAllowed
    #  存储文档资源
    src = PDFResourceManager()

    #  设备对象
    device = PDFPageAggregator(src, laparams=LAParams())

    #  解释器对象

    inter = PDFPageInterpreter(src, device)

    pages = document.get_pages()

    for page in pages:
        # print(page.contents)
        inter.process_page(page)
        layout = device.get_result()
        for x in layout:
            if isinstance(x, LTTextBoxHorizontal):
                # print(str(x.get_text()))
                text += x.get_text()
            # t = dir(x)
            # print(t)
            # print(type(x))
    return text


if __name__ == '__main__':
    #  文件对象
    pd_file = open("520100018072149302.pdf", "rb")
    pdf_text = get_one_pdf_text(pd_file)
    print("pdf_text",pdf_text)





3、如果报错:

1、报错1 WARNING:root:UniGB-UCS2-H:

提取正文报错:WARNING:root:UniGB-UCS2-H
参考文章:https://juejin.cn/post/6844903838395170830

解决方法:

蓝奏云备份,防止给他换下载过慢:

码云备份

项目地址:https://github.com/euske/pdfminer

将GitHub项目下载下来,将里面的:pdfminer\cmap下面的所有文件,复制到:

安装Python模块目录下:
D:\python_work_tools\Python37\Lib\site-packages\pdfminer\cmap

这样问题就解决了。

相关推荐
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:马嘣嘣 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值