使用PyMuPDF(fitz)提取PDF文件文本内容

server/2024/10/21 4:16:52/

安装PyMuPDF库(如果还没有安装的话):

pip install pymupdf

使用以下Python脚本来提取指定页面的文本:

python">import fitz  # 导入PyMuPDF库def extract_text_from_specific_page(file_path, page_number):# 打开PDF文件doc = fitz.open(file_path)# 检查页面号是否有效if page_number < 1 or page_number > len(doc):return "页面号超出文档范围"# 提取指定页面的文本(页面索引从0开始,因此减1)page = doc[page_number - 1]text = page.get_text()# 关闭文档doc.close()return text# 设置文件路径和要提取的页面号
pdf_path = './example.pdf'  # PDF文件路径
page_number = 3  # 假设我们要提取第3页的内容(从1开始)# 调用函数并打印结果
extracted_text = extract_text_from_specific_page(pdf_path, page_number)
print(extracted_text)

使用以下Python脚本来提取PDF文件所有页面文本,并存储在txt文件中:

python">import fitz  # 导入PyMuPDF库def extract_text_from_pdf(file_path, output_path):"""从指定的PDF文件中提取所有页面的文本,并将其存储在TXT文件中。参数:file_path: str, PDF文件的路径。output_path: str, 输出的TXT文件的路径。"""# 打开PDF文件doc = fitz.open(file_path)# 初始化一个空字符串来收集文本full_text = ""# 遍历每一页for page in doc:# 提取当前页面的文本并追加到full_text字符串full_text += page.get_text()# 关闭文档doc.close()# 将所有文本写入TXT文件with open(output_path, "w", encoding="utf-8") as file:file.write(full_text)return f"文本已保存到 {output_path}"# 设置文件路径和输出路径
pdf_path = 'example.pdf'  # PDF文件路径
txt_path = 'output.txt'  # 输出TXT文件的路径# 调用函数并打印结果
result = extract_text_from_pdf(pdf_path, txt_path)
print(result)

http://www.ppmy.cn/server/38979.html

相关文章

unity基础(一)

内容概要&#xff1a; 生命周期函数vector3 位置 方向 缩放旋转等信息Vector3欧拉角和Quaternion四元素unity脚本执行顺序设置 一 生命周期函数 方法说明Awake最早调用,所以一般可以再此实现单例模式OnEnable组件激活后调用,在Awake后会调用一次Start在Update之前调用一次&a…

【退役之重学Java】如何保证从消息队列里拿到的消息顺序执行

一、场景 MySQL binlog 同步数据&#xff0c;比如大数据team。在MySQL中进行增删改查&#xff0c;将其 binlog 发送到 MQ 里面&#xff0c;到消费出来执行&#xff0c;这里就必须要保证其顺序执行&#xff0c;不然数据库就会错乱。 二、如何保证消息的顺序性呢&#xff1f; …

二、Redis五种常用数据类型-String

1、用途 简单的K-V缓存计数器分布式锁session共享分布式ID生成(自增) 2、底层实现结构 Redis底层是c语言实现的&#xff0c;但是并没有使用c的string来表示字符串&#xff0c;而是使用自己的简单动态字符串的抽象类型(simple dynamic string,SDS)。 SDS结构&#xff1a; st…

【思考讨论】如何利用AI提高内容生产效率?

1. 自动化内容生成 利用人工智能&#xff08;AI&#xff09;提高内容生产效率&#xff0c;尤其是在自动化内容生成方面&#xff0c;已经成为媒体、营销、教育等多个领域的热门话题。随着自然语言处理&#xff08;NLP&#xff09;、机器学习、深度学习等技术的飞速发展&#xf…

Linux-02

Linux常用命令&#xff1a; ls: 列出目录touch: 创建文件 touch test.txt echo:往文件写内容echo "i love linux" >>test.txtcd&#xff1a;切换目录pwd&#xff1a;显示目前的目录mkdir&#xff1a;创建一个新的目录 mkdir dai:创建目录dai mkdir -p test1/t…

AlibabaCloud微服务下的链路追踪系统实战详解

&#x1f680; 作者 &#xff1a;“二当家-小D” &#x1f680; 博主简介&#xff1a;⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人&#xff0c;8年开发架构经验&#xff0c;精通java,擅长分布式高并发架构,自动化压力测试&#xff0c;微服务容器化k…

JavaFX 动态加载目录下所有WAV文件并逐个播放

在JavaFX中动态加载一个目录下的所有.wav文件并逐个播放&#xff0c;你可以使用java.nio.file包来遍历目录&#xff0c;并使用javax.sound.sampled包来播放音频文件。不过&#xff0c;需要注意的是&#xff0c;JavaFX本身并不直接支持音频播放&#xff0c;但你可以使用Java的标…