首页 > 编程语言 >如何使用Python读取、旋转和和创建空白的PDF文件

如何使用Python读取、旋转和和创建空白的PDF文件

时间:2024-03-28 19:33:40浏览次数:26  
标签:文件 读取 Python reader PyPDF2 pdf PDF page

试想象一下,你正在处理一堆PDF文件,需要从中提取一些信息或者修改其中的内容。如果你不使用Python,你可能需要手动打开每个文件,复制粘贴你需要的内容,然后再保存为一个新的文件。这简直是一场噩梦!但是,有了Python,你可以轻松地编写一个脚本来自动化这个过程,节省大量时间和精力。

那么,Python是如何读取和创建PDF文件的呢?其实,这背后离不开一些强大的第三方库,比如`PyPDF2`。`PyPDF2`可以帮助我们读取、旋转和创建一个全新空白的PDF文件。

让我给你举个例子吧!假设你有一个PDF文件,你想读取其中的所有文本内容。你可以这样做:

# python对pdf格式文件的读取、写入等操作需要通过模块PyPDF2来实现,需要先安装PyPDF2模块,需要安装的版本是3.0以下的,3.0以上的版本存在不兼容的问题# 安装指定版本的PyPDF2,执行命令:pip install PyPDF2==2.12.1 # Successfully installed PyPDF2-2.12.1# 导入PyPDF2模块import PyPDF2# 读取pdf格式的文件reader = PyPDF2.PdfFileReader(r"./01_iot-modbus.pdf")# print(reader)    # <PyPDF2._reader.PdfFileReader object at 0x0000018650E45520># 读取指定页码的文件,0表示第一页page = reader.getPage(0)# 输出当前页面的文本内容print(page.extractText())

除了读取PDF文件外,Python还可以帮助我们旋转和创建全新空白的PDF文件。你可以这样做:

# 导入PyPDF2模块import PyPDF2# 创建读取pdf文件的对象reader = PyPDF2.PdfFileReader(r"./01_iot-modbus.pdf")# 创建写入pdf文件的对象writer = PyPDF2.PdfFileWriter()# print(reader, writer)    # <PyPDF2._reader.PdfFileReader object at 0x000002AF0A2443B0> <PyPDF2._writer.PdfFileWriter object at 0x000002AF0C57BB30># 获取pdf文件中所有的页码# print(reader.numPages)    # 12# 对pdf文件中的所有页码进行遍历for page_num in range(reader.numPages):    # print(page_num)    # 0 1 2 3 4 5 6 7 ...    # 获取当前页码对象    current_page = reader.getPage(page_num)    # 若是奇数页,顺时针旋转90度    if page_num % 2 == 0:        current_page.rotateClockwise(90)    else:        # 若是偶数页,逆时针旋转90度        current_page.rotateCounterClockwise(90)    writer.addPage(current_page)# 添加空白页面,并且旋转90度page = writer.addBlankPage()page.rotateClockwise(90)# 通过writer对象里面的write方法,将pdf文件做的调整保存到新的文件中with open(r"./02_旋转-创建空白.pdf", "wb") as file:    writer.write(file)

标签:文件,读取,Python,reader,PyPDF2,pdf,PDF,page
From: https://blog.csdn.net/luorongxi123/article/details/136901787

相关文章

  • Python对PDF文件加密和添加水印大揭秘!
    ​Python这个编程语言,不仅因为它语法简洁易懂,还因为它能帮我解决各种实际问题。最近我就用Python给PDF文件加了密,还添了个酷炫的水印,感觉自己瞬间变成了文件安全的小能手!首先,得说说这个PDF加密。你知道吗,现在网上各种资料满天飞,保护自己的文档不被他人随意查看变得尤为重要......
  • P1037 [NOIP2002 普及组] 产生数 python 题解
    原题链接:产生数原理解释本题就是基本的dfs,对每一个数遍历深搜,得到他能变化的所有情况,最后相乘就是结果,网上都是c的解法,需要用到高精度,但是python可以处理大数,不需要。vis[]判断该数是否变换过,防止重复以n=123,k=2,变换列表x=[1,3],y=[3,4],即1->3,3->4:先遍历1:遍历......
  • Python数据结构实验 树和二叉树实验(二)
    一、实验目的1.掌握二叉树的概念和二叉树的性质;2.掌握二叉树的存储结构,包括二叉树顺序存储结构和链式存储结构;3.掌握二叉树的基本运算算法和二叉树的先序、中序和后序遍历的递归算法的实现。二、实验环境1.Windows操作系统的计算机2.Python3.7环境平台和PyCharm编辑器三、......
  • 【课程设计/实训作品】python小区物业管理系统项目源码
    一直想做一款小区物业管理系统,看了很多优秀的开源项目但是发现没有合适的。于是利用空闲休息时间开始自己写了一套管理系统。学习过程中遇到问题可以评论。在线体验http://wuye.gitapp.cn/(账号:admin123密码:admin123)源码地址https://github.com/geeeeeeeek/python_wuye......
  • 从字节码的角度看 python swap
    从字节码的角度看pythonswap背景从一道算法题开始:反转链表classListNode:def__init__(self,v)->None:self.val=vself.next=Nonedefadd_next(self,v):new_node=ListNode(v)self.next=new_noderetur......
  • 16,2024年Python大厂面试分享
    6.3.路由6.3.1.配置分布式路由在tedu_note/urls.py中,将所有user/***相关路由转交给user处理fromdjango.contribimportadminfromdjango.urlsimportpath,includeurlpatterns=[path(‘admin/’,admin.site.urls),path(‘user/’,include(‘user.urls’))......
  • pdf转换器免费的有哪几款?
    免费的pdf工具有哪些?PDF在我们办公频繁使用到,方便阅读,但是很多时候都需要进行文件格式的转换,一款优质、高效的PDF转换工具,能使我们高效地工作。今天就为大家系统地介绍5款免费、好用的PDF转换工具,大家有需要的话可以来这里了解下。1、ilovepdf.com.cnilovepdf在线转换器官方版......
  • MATLAB和Python交互的问题
    MATLAB和Python交互的一些坑:pythonsetup.pyinstall一定要在MATLAB安装文件夹setup.py的位置运行,使用绝对路径运行setup.py是不允许的,但是python可以用绝对路径参考D:\MATLAB\R2019b\extern\engines\python>D:\Python3.7\python.exe.\setup.pyinstall如果后续更换了MATLA......
  • 在Python中如何使用协程进行并发操作
    在Python中使用协程进行并发操作是一种高效的方式来处理I/O密集型任务或者在单个Python程序内部执行多个操作。本文将详细介绍如何在Python中使用协程进行并发操作,包括协程的基本概念、如何创建和运行协程、如何使用任务来管理多个协程,以及如何利用协程进行并发网络请求等。最......
  • 想学Python必看!!让你的Python学习之路事半功倍!!(超详细)
    前言在学习编程的路上,许多小伙伴脑子一热毫无规划就开始自学,结果不出一周,就从入门到入土,小编为大家整理了一份入门须知,看完事半功倍!本篇通过以下四块展开,提供大量资源对应。选一个好版本有没有看过《在下坂本,有何贵干?》那个版本可以装B,Python的版本则是你的工作环境。......