通过Python的PyPDF2库提取pdf中的文字

news2024/11/24 17:45:54

文章目录

  • 前言
  • 一、PyPDF2库是什么?
  • 二、安装PyPDF2库
  • 三、查看PyPDF2库版本
  • 四、使用方法
    • 1.引入库
    • 2.定义pdf路径
    • 3.打开PDF文件
    • 4.创建PDF阅读器对象
    • 5.获取PDF文件中的页数
    • 6.遍历每一页
    • 7.获取当前页内容
    • 8.提取当前页文本
    • 9.打印当前页文本
    • 10.效果
  • 总结

前言

一、PyPDF2库是什么?

PyPDF2是一个用于处理PDF文件的Python库,它提供了许多用于读取和操作PDF文件的功能。它可以对PDF文件进行合并、分割、旋转、提取页面、加密和解密等操作,也可以添加文本、图像和水印等元素到PDF文件中。
PyPDF2库允许开发人员通过Python代码轻松地处理PDF文件,因为它提供了一些简单易用的接口,同时它也非常灵活,可以根据需要进行自定义操作。对于需要处理PDF文件的Python应用程序,PyPDF2是一个非常实用的工具库。

二、安装PyPDF2库

pip install PyPDF2

三、查看PyPDF2库版本

pip show PyPDF2

Name: PyPDF2
Version: 3.0.1
Summary: A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files
Home-page:
Author:
Author-email: Mathieu Fenniak biziqe@mathieu.fenniak.net
License:
Requires: typing_extensions
Required-by:

四、使用方法

1.引入库

import PyPDF2

2.定义pdf路径

local = '/Users/kkstar/Downloads/'

3.打开PDF文件

with open(local+'demo.pdf', 'rb') as pdf_file:

4.创建PDF阅读器对象

pdf_reader = PyPDF2.PdfReader(pdf_file)

5.获取PDF文件中的页数

num_pages = len(pdf_reader.pages)

6.遍历每一页

for page_num in range(num_pages):

7.获取当前页内容

page = pdf_reader.pages[page_num]

8.提取当前页文本

page_text = page.extract_text()

9.打印当前页文本

print(page_text)

10.效果

大家好,我是空空star,这是第一页。
大家好,我是空空star,这是第二页。
大家好,我是空空star,这是第三页。

Process finished with exit code 0

总结

需要提取的pdf截图

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

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

相关文章

【2023 · CANN训练营第一季】初识新一代开发者套件 Atlas 200I DK A2---介绍Atlas 200I DK A2的基本使用

1.Atlas 200I DK A2开发者套件板介绍 应用场景:昇腾AI开发者上手学习、实践创新场景,提供配套软硬件 关键特性规格描述形态135mm120mm44mmAI 算力整数精度(INT8):8 TOPS 半精度(FP16): 4 TFLOPS摄像头接口2* MIPI - CSI 支持两个…

研报精选230521

目录 【行业230521山西证券】煤炭行业周报:量减需增进口倒挂,煤炭价格企稳反弹 【行业230521东吴证券】大炼化周报:油价弱势震荡,下游表现疲软 【行业230521东海证券】4月社零报告专题:低基数下创新高,实质…

MyBatisX

文章目录 MyBatisXMybatis带参方法 动态条件查询多条件查询多条件-动态条件查询ifchoose(when,otherwise) 添加添加-主键返回 修改修改全部字段修改动态字段 删除MyBatis参数传递多个参数单个参数 MyBatis注解完成增删改查 MyBatisX pojo类中的属性名要和数据库中的一致才能实现…

ARM学习笔记_2 模式,寄存器,流水线

ARM arm体积小功耗低性能高,支持thumb ARM双指令集,兼容8/16位器件;大量使用寄存器,指令定长,寻址简单。 ARM是32位架构,Word 32bit, half Word 16bit. 模式 用户模式是用户程序的模式&#…

RK3568平台开发系列讲解(驱动基础篇)RK平台IR的使用

🚀返回专栏总目录 文章目录 一、红外遥控配置二、内核驱动2.1 DTS 定义键值表2.2 内核用户码和IR键值的获取2.3 编译 IR 驱动进内核2.4 Android 键值映射三、IR 波形沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将对RK IR的使用进行学习。 一、红外遥控配置 …

解决插件加载动态库的冲突问题

最近发给用户的插件在使用过程中,UI界面一直未能加载成功,分析后发现和其他的插件发生冲突了,同时用到了一个UI库:MahApps.Metro(自己改造过的版本)。 分析过程中使用ProcessExplorer查看Revit运行过程中所…

二叉树最大宽度-广度优先方式 -队列应用_20230520

二叉树最大宽度-广度优先(BFS)方式 -队列应用 前言 上一遍介绍了求解二叉树最大宽度的DFS解法,求解的核心主要是对根节点、左孩子及右孩子的宽度取最大值,通过赋值给根节点后,然后通过递归栈层层返回,当返回至树的根节点上的时候…

数字图像处理—图像分割算法详解(边缘检测、阈值处理)

前言 令R表示一幅图像占据的整个空间区域。图像分割:把R分为n个子区域R1,R2,…,Rn的过程,满足 点、线、边缘检测 背景知识 一阶导数的近似要求: (1)在恒定灰度区域必须为零 (2)在灰度台阶或…

【连续介质力学】张量值张量函数

张量值张量函数 张量值张量函数有以下类型:标量,向量和高阶张量 标量值张量函数: Ψ Ψ ( T ) det ⁡ T Ψ Ψ ( T , S ) T : S \Psi \Psi(T) \det T \\ \Psi \Psi(T,S) T:S ΨΨ(T)detTΨΨ(T,S)T:S 其中, T , S T, S …

【JavaEE】MyBatis + 单元测试

目录 MyBaits项目的创建使用 引入相关依赖 配置文件设置 数据库连接 配置XML路径 映射器文件模板 业务代码实例 创建实体类 添加Mapper接口创建映射器 验证是否成功 MyBatis原理 什么是MyBatis 为什么学习MyBatis MyBatis工作原理 单元测试 前置工作 生成测试…

Selenium是什么,带你了解自动化测试的神奇之处

一、使用测试工具 工欲善其事,必先利其器。在开始具体的自动化测试之前,我们需要做好更多的准备,包括以下几个方面: 认识自动化测试 准备自动化测试工具 使用有效的方式 针对具体的测试对象 接下来的第一部分内容,我…

基于Java web的电子商务系统

摘要 【摘要】 所谓电子商务就是在网上开展商务活动,当企业将它的主要业务通过企业内部网(Intranet)、外部网(Extranet)以及Internet与企业的职员、客户供销商以及合作伙伴直接相连时,其中发生的各种活动就…

基于SpringBoot的校园志愿者管理系统的设计与实现

背景 本次设计任务是要设计一个校园志愿者管理系统,通过这个系统能够满足管理员和志愿者的校园志愿者信息管理功能。系统的主要功能包括首页、个人中心、志愿者管理、活动类型管理、活动信息管理、活动报名管理、活动通知管理、活动心得管理、交流反馈、系统管理等…

【LTspice入门】一、LTspice安装

一、LTspice安装 1、仿真的重要性:2、LTspice介绍3、LTspice官网4、LTspice下载与安装 1、仿真的重要性: 掌握好电路仿真有助于加深对电子电路分析理论的理解。 由于电子电路仿真不需要实际的元件和仪器仪表设备,设计者就可以对所涉及的电子电路进行性能…

PCIE总线基本介绍(和PCI总线差异、速率计算、引脚定义)

1、PCI和PCIE的差异 (1)PCIE协议在软件编程上是兼容PCI协议,不同在于PCIE和PCI的控制器; (2)PCIE是差分串行信号线,PCI是电平并行信号线; (3)PCI协议使用INTA#、INTB#、INTC#、INTD#四根中断线来触发终端,PCIE协议没有…

sshd_conf 配置文件详解

/etc/ssh/sshd_config配置文件内容详解。 Port 22 设置SSHD监听端口号。 SSH 预设使用 22 这个port,也可以使用多个port,即重复使用 port 这个设定项!例如想要开放SSHD端口为 22和222,则多加一行内容为: Port 222 即…

kotlin协程async与await

kotlin协程async与await import kotlinx.coroutines.* import kotlin.system.measureTimeMillisfun main() {val time measureTimeMillis {runBlocking {/*** async 是 CoroutineScope 扩展函数,async 和 launch 的区别在于async 可以返回协程结果,而 l…

【002hive基础】hive的库、表与hdfs的组织逻辑

文章目录 一. 数据的组织形式1. hive数据库2. hive表2.1. 内部表和外部表2.2. 分区表与分桶表 3. 视图 二. 底层储存 一. 数据的组织形式 1. hive数据库 hive将不同功能模块的数据,存储在不同的数据库中,在hdfs中以文件夹的形式显示。 2. hive表 2.1.…

Excel统计函数AVEDEV,稳住我们能赢

你的关注,是我最大的动力!你的转发,我的10W!茫茫人海有你的支持,给我无限动力。 1、AVEDEV函数。 (1)说明。 返回一组数据点到其算术平均值的绝对偏差的平均值。 AVEDEV函数是对一组数据中变化…

Linux---phy外设调试

文章目录 一、phy设备概述二、内核驱动配置与设备树添加三、其他补充 一、phy设备概述 我们知道在计算机网络上有一个OSI 7层模型: 应用层:网络服务与最终用户的一个接口。 协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP 表…