当前位置: 首页 > news >正文

做网站的公司高创全网推广

做网站的公司高创,全网推广,外贸流程英文,上海装修公司哪家最好1 需求描述 最近工作需要从PDF文档中按照章节解析出对应的文本和图片(后续可能还会有表格),经过调研,找到了一个功能强大的解析工具MuPDF,对应的Python包是PyMuPDF。本篇博客记录使用它来实现具体功能。 官方文档:https://pymupd…

1 需求描述

最近工作需要从PDF文档中按照章节解析出对应的文本和图片(后续可能还会有表格),经过调研,找到了一个功能强大的解析工具MuPDF,对应的Python包是PyMuPDF。本篇博客记录使用它来实现具体功能。

官方文档:https://pymupdf.readthedocs.io/en/latest/index.html

2 利用书签中标题划分章节

在PDF中,点击书签或者目录页中具体一个标题时,文档页面会跳转到对应的章节,“跳转”的实现说明了其背后有一套机制(交叉引用),记录了各级标题和正文页面的对应关系。

PyMuPDF解析书签中各层级标题的接口为Document.get_toc(),该接口可以返回书签的层级、名称、点击它跳转到的页码及具体到目标页的哪个位置。

  • 接口介绍

    get_toc(simple=True/False)
    
    # 参数simple=True时,返回简单版本的各级目录,包括[标题层级, 标题名称,跳转到的页码],例如:
    [
    2,             // 第二级
    '旅行规划',     // 名称
    9,             // 对应正文的第9(该字段index从1开始)
    ]
    
    # 参数simple=False时,在跳转到的页码基础上,增加了'to'指向跳转页具体的坐标点(x, y)
    [2, '用户手册介绍 ', 9, 
    {'kind': 1, 'xref': 3112, 
    'page': 8, 'to': Point(43.937, 29.877015), 
    'zoom': 0.0, 'collapse': False
    }]
    
  • 详细文档


     

利用对书签的解析,获取到了:
(1)文档的层级关系: 包含多少第一级大标题、每个第一级标题下又有多少二级标题,以此类推可以获取完整的文档结构;
(2)每一级标题在正文中的页面范围,例如从第3页(43,40)到第5页的(253, 400)。

因此可以实现按照章节的拆分。

3 基于章节的文本解析

划分章节后,每一章节在正文中的位置由:起始页面、起始页面的坐标、结束页面、结束页面坐标描述,例如,start_page = 5, (start_x = 43, start_y = 36),end_page = 8, (end_x = 134, end_y=238)。

  • 起始页和结束页只需要解析该章节范围内的文字,选择使用Page.get_textbox()方法获取矩形框rect范围内的文字:


     

     
  • 中间页需要在获取页面全部范围内的文字后,过滤页眉和页脚。因此选择使用Page.get_text(“blocks”)方法按块获取该页内所有段落的坐标、文字内容及类型(文本、图片),然后根据坐标过滤掉页眉、页码等不需要的文字内容。


     
  • 文本乱序问题:作者插入顺序可能不是按照阅读顺序,导致解析出来的文字出现了乱序,例如第5行的文字解析出来之后在第10行文字的后面;解决乱序问题主要是通过设置参数sort=True(默认为False),将解析的文本按照坐标排序,来获得按照自然阅读顺序的文本。

  • 单双列布局问题:双列布局的页面,根据页码的坐标来区分是左侧还是右侧。

4 扫描PDF解析

图片扫描成的PDF并不是按照PDF标准形成的文档,没有包含文本信息,按照 3 中的方法获取的文本是空的。

其中一种解决方法是使用OCR获取图片中的文本:

(1)OCR的工具有多种,如PyMuPDF文档提及的OCRMyPDF(免费)。选择OCRMyPDF的话需要配置依赖的两个软件:tesseract和gs,并且由于OCRMyPDF默认的文字识别模型支持英文,在中文情况下需下载对应的中文识别模型。








 

(2)OCR获取文字会存在识别错误的情况,要考虑识别错误对后续处理是否会造成影响。

5 基于章节的图片解析

  • 使用Page.get_image_info(hashes=False, xrefs=False)接口获取图片的元信息,包括图片的原始宽高、嵌入到pdf后的bbox以及交叉引用的序号xref;获取元信息主要是为了使用位置信息来判断图片属于哪个章节;


     
  • 然后使用Document.extract_image(xref)根据元信息中的xref获取存储的图片信息并保存;


     

6 小结

  • 最近解析文档最大收获在于:要明确自己的需求,根据需求去选择工具;PyMuPDF提供的接口功能很强大,面对布局多样的文档,不要急于动手,可以多查阅官方文档寻找更合适的接口,在此基础上设计方案。
  • 分享发现的宝藏博客,博主的系列文章记录了使用PyMuPDF将pdf文档转为word的过程。
http://www.yidumall.com/news/67852.html

相关文章:

  • 长沙网站排名方法小程序开发哪家好
  • 网站域名登dw如何制作网页
  • 做网站什么语言河南网站关键词优化
  • 怎么在服务器做网站清远今日头条最新消息
  • 介绍一个软件的步骤seo外包优化
  • 西安做网站的公司维护信息流优化师培训机构
  • 自己做的手工放在哪个网站卖百度咨询电话 人工客服
  • 做网站好赚钱产品推广软文300字
  • 论坛网站用的虚拟主机洛阳seo博客
  • 黄冈商城网站建设哪家好宁波seo教程推广平台
  • 关于蚌埠政府网站建设软文推广策划方案
  • 网站开发合同编号如何编写网站建设费用多少钱
  • 引流用的电影网站怎么做制作一个网站的流程有哪些
  • 怎么建设只要注册就赚钱的网站网站建设设计
  • b站入口2024永不关闭百度收录查询工具官网
  • 免备案建网站短视频推广引流
  • 做网站什么样的域名好如何做网站搜索引擎优化
  • 360建站abc淘宝如何提升关键词排名
  • 技术先进的网站建seo学徒是做什么
  • 商洛城乡建设局网站陕西seo推广
  • 什么网站可以做网站测速对比抖音推广运营
  • 怎么在网站上做反邪教知识今日最新闻
  • 酒店官方网站的功能建设曹操论坛seo
  • 酒泉网站建设与制作社群运营
  • 专业的大连网站建设郑州学校网站建设
  • 微信用大型网站站做跳板引流推广软件
  • 网络建设与网站建设全网关键词指数查询
  • 做网站用哪个服务器不用备案网站快速优化排名
  • 网站从制作到使用的全过程明星百度指数排行
  • 域名解析网站什么意思今日疫情最新消息