结构图如下:

只要一直循环,就可以从Box -> Line -> Char

使用.bbox属性就可以得到坐标,一共有4个值,分别表示:

  • x0:从页面左侧到框左边缘的距离
  • y0:从页面底部到框的下边缘的距离
  • x1:从页面左侧到方框右边缘的距离
  • y1:从页面底部到框的上边缘的距离

示例

import requests
import io
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTText, LTChar, LTAnnodef parse_char_layout(layout):"""解析页面内容,一个字母一个字母的解析"""# bbox:# x0:从页面左侧到框左边缘的距离。# y0:从页面底部到框的下边缘的距离。# x1:从页面左侧到方框右边缘的距离。# y1:从页面底部到框的上边缘的距离for textbox in layout:if isinstance(textbox, LTText):for line in textbox:for char in line:# If the char is a line-break or an empty space, the word is completeif isinstance(char, LTAnno) or char.get_text() == ' ':passelif isinstance(char, LTChar):print("坐标 x:", char.bbox[0], "y:", char.bbox[3], " ||| ", char.get_text())if __name__ == '__main__':req = requests.get("http://www.africau.edu/images/default/sample.pdf")fp = io.BytesIO(req.content)# fp = open('../../ocr_pdf/0a0c3b458b66d5e525551ec5b40df1c6.pdf', 'rb')parser = PDFParser(fp)  # 用文件对象来创建一个pdf文档分析器doc: PDFDocument = PDFDocument(parser)  # 创建pdf文档rsrcmgr = PDFResourceManager()  # 创建PDF,资源管理器,来共享资源# 创建一个PDF设备对象laparams = LAParams()device = PDFPageAggregator(rsrcmgr, laparams=laparams)# 创建一个PDF解释其对象interpreter = PDFPageInterpreter(rsrcmgr, device)# 循环遍历列表,每次处理一个page内容# doc.get_pages() 获取page列表interpreter = PDFPageInterpreter(rsrcmgr, device)# 处理文档对象中每一页的内容# doc.get_pages() 获取page列表# 循环遍历列表,每次处理一个page的内容# 这里layout是一个LTPage对象 里面存放着 这个page解析出的各种对象 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等 想要获取文本就获得对象的text属性,for page in PDFPage.create_pages(doc):print('================ 新页面 ================')interpreter.process_page(page)layout = device.get_result()parse_char_layout(layout)  # 解析字母

python解析pdf得到每个字符的坐标相关推荐

  1. python解析pdf,读取文字,可识别两栏pdf等

    python解析pdf,读取文字,可识别两栏pdf等 一.解析我们的pdf文件,首先第一步是解析普通类别的pdf(只有一栏) 代码中包含注释(不懂得可以留言) 二.处理拥有两栏等类型的pdf 为什么要 ...

  2. python读取pdf表格_[转]Python 解析 PDF 文本和表格的四大方法介绍

    Python 解析 PDF 文本和表格的四大方法介绍 == code for paper and NSFC Proj. parsing==: https://gitee.com/sonica/pdf_ ...

  3. python解析pdf文件

    加载pdf文件,获取pdf的每一页对象: import pdfplumber path = "" with pdfplumber.open(path) as pdf_obj:pag ...

  4. Python解析pdf转为TXT格式

    #完成pdf到TXT转变了,无法完成TXT到Excel转变import xlwt # 写入文件 import xlrd # 打开excel文件 from xlutils.copy import cop ...

  5. io python 读取pdf_python自动化办公之 Python 解析 PDF

    上次给大家介绍了 Python 如何操作 Word 和 Excel ,而今天想为大家再介绍下,用 Python 如何解析 PDF ,PDF 格式不像前面两个那么规范,从它的表现来看,它更像是一张图片, ...

  6. python interpreter 中没有torch_python自动化办公之 Python 解析 PDF

    上次给大家介绍了 Python 如何操作 Word 和 Excel ,而今天想为大家再介绍下,用 Python 如何解析 PDF ,PDF 格式不像前面两个那么规范,从它的表现来看,它更像是一张图片, ...

  7. python解析pdf中文乱码_解析PDF文件以及解决编码问题

    1.解析pdf文件 最近需要将pdf中文本提取出来,于是就了解了一下pdfminer 首先安装:pip3 install pdfminer3k 之后就是用pdfminer解析,不多说,直接上代码,这些 ...

  8. python解析pdf,pdfplumber和tabula

    最近做了一个需要解析财报pdf的项目,财报的格式大致一样,但是具体细节会有略微不同. 原本是使用pdfplumber来做,做到一半,发现 pdfplumber对于分页了的表格处理很不友好. 原本处理分 ...

  9. python解析pdf中文乱码_使用Python第三方库pdfminer提取PDF内容,并解决中文编码不支持的问题...

    这两天刚好完成一个提取人行简版征信报告PDF所有数据的小项目,中间踩了很多坑,尤其是对于汉字编码问题度娘也不太灵.为了方便后人,在这里记录下在这个过程中我遇到的问题以及我的解决方法. 我用的是mac系 ...

最新文章

  1. gson解析mysql城市json数据_Gson解析复杂的json数据
  2. OpenStack 多节点纳管 vCenter 5.5
  3. FTP Active Passive
  4. c语言结构体单元测试,C语言结构体单元练习.doc
  5. linux c语言获取时间
  6. 基于Bootstrap的网站后台模板Metronic
  7. python在线翻译脚本_用Python抓取百度翻译内容并打造自己的翻译脚本!
  8. 藏红花怎么推广?百度下拉词|抖音下拉词框|信息流推广-三剑合璧
  9. ESLint规则配置说明
  10. python课堂笔记之django-day02(11)
  11. MySQL之环境变量配置
  12. 单片机入门学习十五 STM32单片机学习十二 电容触摸按键
  13. 全角字符空格(可复制使用)
  14. kalibr_calibrate_cameras 卡在 Extracting calibration target corners
  15. vue 封装图片预览组件
  16. 星转二手交易平台/二手交易系统/二手网站
  17. Javaweb的服务器有哪些
  18. WebLogic的下载与安装
  19. 6GK5116-0BA00-2AB2的技术参数说明
  20. SEO教程:如何优化长尾关键词达到快速排名(干货)

热门文章

  1. 二维高斯曲面拟合法求取光斑中心及算法的C++实现
  2. linux mpc8313启动流程,基于MPC8313E和FPGA的双口RAM驱动开发
  3. c++ sleep函数_C ++ strcpy()和strncpy()函数
  4. setheading指令_set命令
  5. Ibatis.Net 各类的作用说明学习(三)
  6. 用python重构策略模式
  7. 网页表单form中提交的两种方式
  8. 玩转linux——Screen管理远程会话,再也不怕关闭SSH就中断会话了
  9. win2008r2 or centos6 硬盘挂载
  10. 超实用的JavaScript技巧及最佳实践