解锁 PDF 内容:如何用 Python 从 PDF 中快速提取文本

在现代办公环境中,PDF 文件作为一种通用的文档格式被广泛使用。无论是合同、报告还是电子书,很多重要信息都储存于 PDF 文件中。因此,从 PDF 文件中提取文本数据的需求也逐渐增加。本文将为大家介绍如何使用 Spire.PDF for Python 来实现这一功能,具体包括从某一页和从指定区域提取文本。

1. 环境准备

首先,确保你已经安装了 Python 和 Spire.PDF 的相关库。你可以通过以下命令安装 Spire.PDF:

pip install Spire.PDF

2. 从指定页面提取文本

2.1 代码示例

以下代码展示了如何从 PDF 文档中的特定页(例如第2页)提取文本:

from spire.pdf.common import * from spire.pdf import * # 创建一个 PdfDocument 对象 doc = PdfDocument() # 加载 PDF 文档 doc.LoadFromFile('C:/Users/Administrator/Desktop/Terms of service.pdf') # 创建 PdfTextExtractOptions 对象并启用全文本提取 extractOptions = PdfTextExtractOptions() # 提取所有文本,包括空格 extractOptions.IsExtractAllText = True # 获取特定的页面(例如,第2页) page = doc.Pages.get_Item(1) # 创建 PdfTextExtractor 对象 textExtractor = PdfTextExtractor(page) # 从页面中提取文本 text = textExtractor.ExtractText(extractOptions) # 使用 UTF-8 编码将提取的文本写入文件 withopen('output/TextOfPage.txt', 'w', encoding='utf-8') as file: file.write(text)

2.2 代码解析

  1. 创建PdfDocument对象:这一步是加载 PDF 文件的第一步。
  2. 加载 PDF 文档:使用指定路径加载你要处理的 PDF 文件。
  3. 配置提取选项:通过设置IsExtractAllText为 True,确保提取所有文本,包括空格。
  4. 获取特定页面doc.Pages.get_Item(1)获取的是 PDF 的第二页(索引从0开始)。
  5. 创建文本提取器并提取文本:使用PdfTextExtractor对象来提取文本。
  6. 将提取的文本保存为文件:最终将文本内容保存到指定路径的文件中。

3. 从指定区域提取文本

有时候,仅提取 PDF 中的某一特定区域的文本更加有效。这可以通过定义一个矩形区域来实现。

3.1 代码示例

以下代码将展示如何从 PDF 的指定区域提取文本:

from spire.pdf.common import * from spire.pdf import * # 创建一个 PdfDocument 对象 doc = PdfDocument() # 加载 PDF 文档 doc.LoadFromFile('C:/Users/Administrator/Desktop/Terms of service.pdf') # 获取特定的页面(例如,第2页) page = doc.Pages.get_Item(1) # 创建 PdfTextExtractor 对象 textExtractor = PdfTextExtractor(page) # 创建 PdfTextExtractOptions 对象 extractOptions = PdfTextExtractOptions() # 定义提取的矩形区域 # RectangleF(left, top, width, height) extractOptions.ExtractArea = RectangleF(0.0, 100.0, 890.0, 80.0) # 从指定区域提取文本,保留空格 text = textExtractor.ExtractText(extractOptions) # 使用 UTF-8 编码将提取的文本写入文件 withopen('output/TextOfRectangle.txt', 'w', encoding='utf-8') as file: file.write(text)

3.2 代码解析

  1. 加载 PDF 文件:与之前相同,首先加载 PDF 文档。
  2. 获取特定页面:依然使用doc.Pages.get_Item(1)来获取第2页。
  3. 定义提取区域:通过RectangleF类来定义一个矩形区域,该区域的左上角坐标为(0, 100),宽度为890,高度为80
  4. 执行文本提取:然后使用ExtractText方法从指定区域提取文本。
  5. 保存文本:最后,提取的文本同样保存为 UTF-8 编码的文件。

结论

通过以上方法,我们可以方便地从 PDF 文档中提取所需的文本信息。Spire.PDF for Python 提供的 API 简洁高效,能够满足多种文本提取需求。不论是从全页提取还是从特定区域提取,在实际工作中都能显著提高效率,尤其对于需要处理大量 PDF 文件的场合,使用此工具将使你事半功倍。

希望这篇博客能够帮助你更好地理解如何使用 Python 提取 PDF 文本,让你的工作更轻松高效!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【课程设计/毕业设计】基于机器学习训练手写数字识别 python基于cnn训练手写数字识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

设备管理是操作系统的重要组成部分,其定位在于协调和控制计算机系统中的各类硬件设备

设备管理是操作系统的重要组成部分,其定位在于协调和控制计算机系统中的各类硬件设备,尤其是 I/O 设备及其相关支撑部件(如控制器、中断系统等),确保设备高效、安全地运行。由于设备种类繁多、接口各异,设备…

宏智树AI如何用“智能三板斧”搞定选题、框架与文献?

——从“一团乱麻”到“条理清晰”,让你的开题报告一眼惊艳导师 宏智树AI官网:http://www.hzsxueshu.com | 微信公众号:宏智树AI每到开题季,总有人对着空白的文档抓耳挠腮:选题要么“大而空”,要么“小而窄…

芒果病害数据集6593张VOC+YOLO格式(已增强)

芒果病害数据集6593张VOCYOLO格式(已增强)数据集格式:VOC格式YOLO格式压缩包内含:3个文件夹,分别存储图片、xml、txt文件JPEGImages文件夹中jpg图片总计:6593Annotations文件夹中xml文件总计:65…

基于java的SpringBoot/SSM+Vue+uniapp的校园心理咨询系统的详细设计和实现(源码+lw+部署文档+讲解等)

文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言 🌞博主介绍:✌全网粉丝15W,CSDN特邀作者、211毕业、高级全…

全网最全MBA必看TOP8AI论文写作软件测评

全网最全MBA必看TOP8AI论文写作软件测评 2026年MBA必备AI论文写作工具测评维度解析 随着人工智能技术的不断进步,AI写作工具在学术研究中的应用日益广泛。对于MBA学生而言,撰写高质量的论文不仅是学业要求,更是提升专业能力的重要途径。然而&…

编写好的代码,AI 才会奖励你

原文:AI Is Forcing Us To Write Good Code - by Steve Krenzel 今天读了一篇博客《AI Is Forcing Us To Write Good Code》,作为一名“古法编程”者,感触颇深。 AI Coding 不是那么轻松随意的。 01 垃圾进,垃圾出 文章里提了一…

深度学习毕设选题推荐:基于cnn训练手写数字识别基于机器学习训练手写数字识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

床单污渍检测数据集3935张VOC+YOLO格式

床单污渍检测数据集3935张VOCYOLO格式数据集格式:VOC格式YOLO格式压缩包内含:3个文件夹,分别存储图片、xml、txt文件JPEGImages文件夹中jpg图片总计:3935Annotations文件夹中xml文件总计:3935labels文件夹中txt文件总计…

2026最新全网6种方法教你如何关闭Win10/Windows11系统自动更新,一键彻底关闭win11系统自动更新

本文介绍了六种关闭 Windows 10/Windows 11 自动更新的方法,包括通过 Windows 设置、Windows Update 服务、本地组策略编辑器、任务计划程序、注册表编辑器以及使用“禁止windows更新"工具。每种方法都提供了详细的操作步骤,用户可以根据自身需求和…

Python入门筑基指南!!!

环境安装与配置下载并安装最新版Python(官网:python.org),推荐使用Python 3.10版本。安装时勾选"Add Python to PATH"选项。验证安装:python --version基础语法结构Python使用缩进(4个空格&#…

【毕业设计】基于python深度学习的猫狗表情识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

达梦 DM8 数据库 Kylin Server 环境实战:实例配置与 SQL 开发全攻略

前言 在完成 DM8 数据库在 Kylin Server 系统的基础安装后,实例配置、数据安全保障及 SQL 程序设计是支撑业务落地的核心环节。本文基于国产数据库实战经验,从 DM8 实例创建与优化、备份还原策略、自定义函数开发、业务场景 SQL 实现四个维度&#xff0…

温故Windows - Windows 任务管理器深度指南

Windows 任务管理器深度指南 从 1994 年的业余项目到 10 亿用户的必备工具,揭秘任务管理器背后的设计哲学与进阶技巧。 引言:任务管理器的 “原作者” 与这篇文章 故事回到 1994 年,微软雷德蒙德园区。一位年轻的开发者 Dave Plummer 正坐在他的办公室里(或者说是家…

深度学习毕设项目:机器学习基于CNN图像识别昆虫类别基于CNN图像识别昆虫类别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

排水管道缺陷数据集4767张VOC_YOLO(已增强)

排水管道缺陷数据集4767张VOC_YOLO(已增强)数据集格式:VOC格式YOLO格式压缩包内含:3个文件夹,分别存储图片、xml、txt文件JPEGImages文件夹中jpg图片总计:4767Annotations文件夹中xml文件总计:4…

网络安全渗透面试十题以及答案,从零基础入门到精通,收藏这一篇就够了!

干货收藏!网络安全渗透测试面试核心知识点整理,小白也能看懂的面试宝典 本文整理了网络安全渗透测试面试核心知识点,包括前后台渗透思路、getshell方法、WAF绕过技术、路径查找、JWT攻击手法、提权要点、宽字符注入原理、业务逻辑漏洞测试、…

【毕业设计】基于机器学习CNN图像识别昆虫类别基于CNN图像识别昆虫类别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

从零到一:手把手教你安装达梦数据库(DM8)

前言 在当前信息技术应用创新的大背景下,国产数据库的安装部署成为越来越多开发者和运维人员需要掌握的技能。达梦数据库(DM8)作为国产数据库的佼佼者,其安装过程既体现了专业性,又兼顾了用户友好性。本文将带你完整走…

实操干货!近地面无人机影像辐射/几何校正+SfM点云全流程处理(附代码+实践案例)

【内容简介】:专题一、近十年近地面无人机植被遥感文献分析、传感器选择、观测方式及质量控制要点1.1. 近十余年无人机植被遥感文献分析文献分析软件VOSviewer的使用(实践)无人机植被遥感的重点研究方向、研究机构、科学家1.2. 无人机遥感的特…