提取双栏pdf的文字时 输出文件顺序混乱

from spire.pdf.common import *
from spire.pdf import *
import osdef extract_text_from_pdf(pdf_path, output_dir, is_simple_extraction=True):# 创建一个 PDF 文档对象pdf = PdfDocument()# 加载 PDF 文件pdf.LoadFromFile(pdf_path)# 确保输出目录存在if not os.path.exists(output_dir):os.makedirs(output_dir)# 创建一个TXT文件来保存提取的文本extracted_text_path = os.path.join(output_dir, "extract_text.txt")extractedText = open(extracted_text_path, "w", encoding="utf-8")# 创建PdfTextExtractOptions 对象extractOptions = PdfTextExtractOptions()extractOptions.IsSimpleExtraction = is_simple_extraction# 遍历文档的每一页for i in range(pdf.Pages.Count):# 获取页面page = pdf.Pages.get_Item(i)# 创建PdfTextExtractor 对象textExtractor = PdfTextExtractor(page)# 从页面提取文本text = textExtractor.ExtractText(extractOptions)# 将文本写入TXT文件extractedText.write(text)# 释放资源extractedText.close()pdf.Close()# 调用函数,确保路径正确
extract_text_from_pdf('input\\BLIP-2.pdf', "./text", is_simple_extraction=True)

最开始我用的spire pdf 直接提取 发现输出的文本格局会和原来pdf格局一样导致出现文本顺序混乱

from spire.pdf.common import *
from spire.pdf import *
import osdef extract_text_from_pdf(pdf_path, output_dir, is_simple_extraction=True):# 创建一个 PDF 文档对象pdf = PdfDocument()# 加载 PDF 文件pdf.LoadFromFile(pdf_path)# 确保输出目录存在if not os.path.exists(output_dir):os.makedirs(output_dir)# 创建一个TXT文件来保存提取的文本extracted_text_path = os.path.join(output_dir, "extract_text.txt")extractedText = open(extracted_text_path, "w", encoding="utf-8")# 创建PdfTextExtractOptions 对象extractOptions = PdfTextExtractOptions()extractOptions.IsSimpleExtraction = is_simple_extraction# 遍历文档的每一页for i in range(pdf.Pages.Count):# 获取页面page = pdf.Pages.get_Item(i)# 创建PdfTextExtractor 对象textExtractor = PdfTextExtractor(page)# 从页面提取文本text = textExtractor.ExtractText(extractOptions)# 将文本写入TXT文件extractedText.write(text)# 释放资源extractedText.close()pdf.Close()# 调用函数,确保路径正确
extract_text_from_pdf('input\\BLIP-2.pdf', "./text", is_simple_extraction=True)

只要设置PdfTextExtractOptions.IsSimpleExtraction = True 就可以实现按照pdf文字输入顺序提取文字         想法来源:Python 从 PDF 文档中提取文本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/15672.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

电子工牌独立双通道定向拾音方案(有视频演示)

现在一些行业的客服人员在面对客户都要求使用电子工牌分别记录客服和顾客的声音,我们利用双麦克风阵列双波束拾音的方案设计了一个电子工牌方案.可以有效分别记录客服和顾客的声音. 方案思路: 我们采用了一个双麦阵列波束拾音的模块A-59,此模块可以利用2个麦克风组成阵列进行双…

Dubbo 3.x源码(25)—Dubbo服务引用源码(8)notify订阅服务通知更新

基于Dubbo 3.1,详细介绍了Dubbo服务的发布与引用的源码。 此前我们学习了接口级的服务引入订阅的refreshInterfaceInvoker方法,当时还有最为关键的notify服务通知更新的部分源码没有学习,本次我们来学习notify通知本地服务更新的源码。 Dubb…

Linux基础1

Linux基础1 Linux基础1学习笔记 ‍ 声明! ​​​学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章 笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他…

WSL2安装Ubuntu22.04并开启GPU进行ML学习教程

文章目录 一 启用 WSL2二、安装 Ubuntu三 安装 NVIDIA GPU 驱动和 CUDA 工具四、安装pytouch运行环境 这几天一直在研究下,怎么在笔记本win11电脑上安装linux系统用于机器学习、深度学习、大模型等相关的研究,前面试了VMWARE、HYPER-V等方式,…

用 Python 从零开始创建神经网络(七):梯度下降(Gradient Descent)/导数(Derivatives)

梯度下降(Gradient Descent)/导数(Derivatives) 引言1. 参数对输出的影响2. 斜率(The Slope)3. 数值导数(The Numerical Derivative)4. 解析导数(The Analytical Derivat…

Cyberchef配合Wireshark提取并解析HTTP/TLS流量数据包中的文件

本文将介绍一种手动的轻量级的方式,还原HTTP/TLS协议中传输的文件,为流量数据包中的文件分析提供帮助。 如果捕获的数据包中存在非文本类文件,例如png,jpg等图片文件,或者word,Excel等office文件异或是其他类型的二进…

Java结合ElasticSearch根据查询关键字,高亮显示全文数据。

由于es高亮显示机制的问题。当全文内容过多,且搜索中标又少时,就会出现高亮结果无法覆盖全文。因此需要根据需求手动替换。 1.根据es的ik分词器获取搜索词的分词结果。 es部分: //中文分词解析 post /_analyze {"analyzer":"…

一觉睡醒,全世界计算机水平下降100倍,而我却精通C语言——scanf函数

大家好啊,我是小象٩(๑ω๑)۶ 我的博客:Xiao Fei Xiangζั͡ޓއއ 很高兴见到大家,希望能够和大家一起交流学习,共同进步。* 这一节我们主要来学习scanf的基本用法,了解scanf返回值,懂得scanf占位符和…

Kafka一些常用的命令行操作【包含主题命令、生产者和消费者命令】

文章目录 1、主题命令2、生产者命令行操作3、消费者命令行操作 1、主题命令 查看当前服务器中的所有 topic: kafka-topics.sh --bootstrap-server node01:9092 --list 创建topic: kafka-topics.sh --bootstrap-server node01:9092 --create --topic to…

基于物联网的温室大棚控制系统

本设计采用物联网方案,用STM32f103c8t6作为主控芯片,采用DHT11作为温湿度传感器,采集CO2使用JW01-CO2-V2.2传感器模块,并且通过BH1750传感器模块采集光照,通过土壤湿度传感器来获取大棚内部土壤湿度,ESP-01…

Ubuntu24安装配置NDK

1、下载NDK 下载压缩包,下载地址如下,建议下载LTS支持版本。 https://developer.android.google.cn/ndk/downloads?hlcs 2、解压缩 将NDK解压到指定文件夹。如:/opt 或者先解压,再移动到指定目录下。 3、配置环境变量 找到…

Python中的HTML

文章目录 一. HTML1. html的定义2. html的作用3. 基本结构4. 常用的html标签5. 列表标签① 无序列表② 有序列表 6. 表格标签7. 表单标签8. 表单提交① 表单属性设置② 表单元素属性设置 一. HTML 1. html的定义 HTML 的全称为:HyperText Mark-up Language, 指的是…

使用etl工具kettle的日常踩坑梳理之二、从Hadoop中导出数据

想操作MySQL等关系型数据库的可以访问我上一篇文章,本章主要介绍操作Hadoop等大数据组件。 根据2024年11月份测试了kettle工具在9.3及以上版本已经没有内置连接大数据(如Hadoop)组件了。 建议安装9.2及以下的,我这里送上8.3.0版本的请用百度网盘下载链…

NVR录像机汇聚管理EasyNVR多品牌NVR管理工具视频汇聚技术在智慧安防监控中的应用与优势

随着信息技术的快速发展和数字化时代的到来,安防监控领域也在不断进行技术创新和突破。NVR管理平台EasyNVR作为视频汇聚技术的领先者,凭借其强大的视频处理、汇聚与融合能力,展现出了在安防监控领域巨大的应用潜力和价值。本文将详细介绍Easy…

智慧安防丨以科技之力,筑起防范人贩的铜墙铁壁

近日,贵州省贵阳市中级人民法院对余华英拐卖儿童案做出了一审宣判,判处其死刑,剥夺政治权利终身,并处没收个人全部财产。这一判决不仅彰显了法律的威严,也再次唤起了社会对拐卖儿童犯罪的深切关注。 余华英自1993年至2…

游戏引擎学习第10天

视频参考:https://www.bilibili.com/video/BV1LyU3YpEam/ 介绍intel architecture reference manual 地址:https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html RDTS(读取时间戳计数器)指令是 x86/x86_64 架构中的…

Asp.net Mvc 电脑销售系统

2 系统实现 2.1 系统框架 该服务平台采用三层架构,以ASP.NET MVC框架为基础 [6]。采用仓库设计的方法,布署灵便。.NET Framework是一个开源框架,适用混合开发。系统软件的集成开发工具是Visual Studio 2019。在数据库的开发中,利…

A3超级计算机虚拟机,为大型语言模型LLM和AIGC提供强大算力支持

热门大语言模型项目地址:www.suanjiayun.com/mirrorDetails?id66ac7d478099315577961758 近几个月来,我们目睹了大型语言模型(LLMs)和生成式人工智能强势闯入我们的视野,显然,这些模型在训练和运行时需要…

无人机飞手在保家卫国上重要性技术详解

无人机飞手在保家卫国方面发挥着越来越重要的作用,其重要性技术主要体现在以下几个方面: 一、无人机操作与维护技能 无人机飞手在入伍前通常已接受了系统的无人机操作培训,掌握了无人机的飞行原理、构造、维护保养以及多种飞行技巧。这种专…

数据结构--java对象的比较

目录 三种方法的比较 equals方法 Comparable.compareTo方法 执行比较 Comparator.compare方法 连接比较 Comparator和Comparable的区别 三种方法的比较 equals方法 将基本数据类型包装成对应的包装类(如Integer、Double)进行比较 Comparable.compareTo方法 执…