python使用pdfplumber读取PDF文本及其位置 您所在的位置:网站首页 怎么从一个pdf文件里面提取出部分页数的内容 python使用pdfplumber读取PDF文本及其位置

python使用pdfplumber读取PDF文本及其位置

#python使用pdfplumber读取PDF文本及其位置| 来源: 网络整理| 查看: 265

python使用pdfplumber读取PDF文本及其位置 pdfplumber入门

可以参照官方的教程学习https://github.com/jsvine/pdfplumber

这里也推荐一个使用入门介绍的很清楚的博客https://blog.csdn.net/weixin_48629601/article/details/107224376,把官网的教程翻译解释的很清晰。

文本及其位置的读取代码

pdf读取示例

image-20210810155449737

比如我想获得图中**能量**在pdf中的位置,推荐使用jupyter notebook去写,可以可视化调节。

import pdfplumber # 读取pdf并选择对应的页数 pdf = pdfplumber.open('t.pdf') page = pdf.pages[4] # 提取文本并可视化 words = page.extract_words() im = page.to_image() im.draw_rects(words)

通过可视化能看出提取效果

下载

page.extract_words()提取的信息是字典列表,会包含文本,位置等信息

print(words[0])

使用print输出可以得到所有的信息,x0,x1, top, bottom就是所需的位置信息

{‘text’: ‘信息载体’, ‘x0’: Decimal(‘221.741’), ‘x1’: Decimal(‘398.141’), ‘top’: Decimal(‘44.336’), ‘bottom’: Decimal(‘88.376’), ‘upright’: True, ‘direction’: 1}

所以如果需要提取某个文本的位置可以使用下面的代码:

# 先查看所有的文本 print(page.extract_text()) 再查找需要的文本 for word in words: if '能量' in word['text']: print(word)

运行结果如下:

信息载体 电磁辐射 E=hf=hc/λ 波长 能量 c 为光速 h为普朗克常数 {‘text’: ‘能量\uf06c’, ‘x0’: Decimal(‘85.914’), ‘x1’: Decimal(‘147.480’), ‘top’: Decimal(‘460.084’), ‘bottom’: Decimal(‘484.414’), ‘upright’: True, ‘direction’: 1}



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有