Python实现pdf文件分页

  • 1.源文件
  • 2.目标页数区间
  • 3.代码运行
  • 4.异常捕获的代码展示
  • 5.其它

不知道大家有没有遇到过这么一种情况,就比如一个pdf格式的电子书,我们经常浏览的是其中的一部分,而这电子书的页数很大,每当需要浏览时,就需要翻到对应的页码,就有点儿繁琐。

还有一些情况,比如,我们想分享pdf文件里的部分内容给别人,我们也需要用到pdf分页,不仅可以分析指定内容,而且也可以减少发送文件的大小O(∩_∩)O哈哈~

总之,pdf的分页,我们在现实生活中,是难免会遇到的事。当你遇到时,你是怎么解决的呢?

在Python中,实现pdf分页,是极其简单快速的,只需要运行几行代码,即可实现,不管你的pdf文件有多大,下面让我们一起来看看吧~
注:每部分代码的作用,我都注释在了代码后面,注意查看喔~

from PyPDF2 import PdfFileReader, PdfFileWriter
import osdef split(path, page_num):try:  # 捕获值异常错误,就是只输入了一个页数的时候page_start, page_end = page_num.split()except ValueError:page_start = page_numpage_end = page_numoutput_name = os.path.splitext(path)[0] + f'({page_start}-{page_end}).pdf'  # 输出分割后的pdf文件page_start, page_end = int(page_start), int(page_end)  # 将页码转为整数类型if os.path.splitext(path)[1] == '':  # 判断文件格式是否以.pdf结尾path = path + ".pdf"try:pdf = PdfFileReader(path)  # 读取pdfexcept FileNotFoundError:print("Error:请确认您输入的pdf文件是否存在!")returnpdf_writer = PdfFileWriter()  # pdf写入对象if page_start < 1 or page_end > pdf.getNumPages():  # 判断页码是否在合理范围内,即有没有小于或大于pdf文件的页数print("Error:页码超出合理范围,请确定您输入的页数区间在合理范围之内!")returnfor page in range(page_start-1, page_end):  # 需要分割的pdf页数区间,因为读取的页数是从0开始计数的,所以减1pdf_writer.addPage(pdf.getPage(page))  # pdf页数读取,存于内存,并未开始写入with open(output_name, 'wb') as output_pdf:pdf_writer.write(output_pdf)  # 开始写入指定页数区间的pdfprint("分页完成,注意查收:" + output_name)if __name__ == '__main__':source_path = input("请输入需要分割的pdf的文件:")  # 需要分割的pdf文件pages = input("请输入分割的起始页和终止页,以空格分开:")split(source_path, pages)

其实最主要的代码就下面的几行:

pdf = PdfFileReader(path)  # 读取pdf
pdf_writer = PdfFileWriter()  # pdf写入对象
for page in range(page_start, page_end):  # 需要分割的pdf页数区间pdf_writer.addPage(pdf.getPage(page))  # pdf页数读取,存于内存,并未开始写入
with open(output_name, 'wb') as output_pdf:pdf_writer.write(output_pdf)  # 开始写入指定页数区间的pdf

我只是在其基础上增加了一些异常错误捕获并解决的代码,并实现代码的循环利用,而不是只针对于一个pdf文件。

代码使用展示:

1.源文件


书的页数还是挺大的

2.目标页数区间


注意,虽然这里的页码是271,但并不代表就是271,因为读取的pdf文件页码是整个文件的页码,就比如书的封面,目录的页数也得包含进去。

所以,我们可以简单算一下,书的页码第一页与到封面差了几页,我这里差的是13页,所以就是271+13=284作为分割起始页,需要截取的页数对应书上的页码是276,276+13=289,所以终止页就是289

3.代码运行



4.异常捕获的代码展示

输入的起始页小于1:
pdf页码一共才600页,然后输入了终止页为700:

5.其它

要求的是区间,但你可以输入1 1,1:


箴言:因为这些东西是非常简单的。不要抱怨自己学不会,那是因为你没有足够用心。

最后,感谢您的阅读。您的每个点赞、留言、分享都是对我们最大的鼓励,笔芯~

如有疑问,欢迎在评论区一起讨论!

如何使用Python玩转PDF各种骚操作?你看了就知道。相关推荐

  1. python怎么玩pdf_如何使用Python玩转PDF各种骚操作?

    Portable Document Format(可移植文档格式),或者PDF是一种文件格式,可以用于跨操作系统的呈现和文档交换.尽管PDF最初是由Adobe发明的,但它现在是由国际标准化组织(ISO ...

  2. 如何使用Python玩转PDF各种骚操作?

    点击"小詹学Python",选择"置顶"公众号 重磅干货,第一时间送达 本文转载自Python数据科学,禁二次转载 Portable Document Form ...

  3. python书籍pdf文档密码-Python玩转PDF的各种骚操作

    Portable Document Format(可移植文档格式),或者PDF是一种文件格式,可以用于跨操作系统的呈现和文档交换.尽管PDF最初是由Adobe发明的,但它现在是由国际标准化组织(ISO ...

  4. python实用大全pdf_超级实用干货|九大技巧,带你用Python玩转PDF

    原标题:超级实用干货|九大技巧,带你用Python玩转PDF 尽管PDF最开始是由Adobe发明的,但它现在已经成为国际标准组织ISO维护的公开标准了.大家可以在Python中通过PyPDF2包来处理 ...

  5. 用python玩转微信小游戏 大小猜猜看

    用python玩转微信小游戏 大小猜猜看 游戏模式 在微信小程序里搜索"大小猜猜看",即可找到该游戏. 游戏的目标比拼计算能力,找出谁大谁小,一共有40题,全部答对即挑战成功. 一 ...

  6. python pypdf2另存为图片_用Python玩转PDF的各种骚操作

    文/Python数据科学  图片来源于网络 Portable Document Format(可移植文档格式),或者PDF是一种文件格式,可以用于跨操作系统的呈现和文档交换.尽管PDF最初是由Adob ...

  7. 用Python玩转PDF的各种骚操作

    文/Python数据科学  图片来源于网络 Portable Document Format(可移植文档格式),或者PDF是一种文件格式,可以用于跨操作系统的呈现和文档交换.尽管PDF最初是由Adob ...

  8. 【Python基础】pandas的骚操作:一行 pandas 代码搞定 Excel “条件格式”!

    来源:Python数据科学 作者:东哥起飞 本篇是pandas100个骚操作系列的第 7 篇:一行 pandas 代码搞定 Excel "条件格式"! 系列内容,请看????「pa ...

  9. 在 Chrome 控制台可以玩的两个骚操作,你知道吗?

    在日常的前端开发中,我会经常使用 Chrome 开发者工具调节样式.查看日志.追踪错误.这给我的开发工作带来了很大的便利. 在 Chrome 控制台中,就有两个非常方便且鲜为人知的骚操作,可以供我们使 ...

  10. 【Python】用 Python 来实现PDF 的各种操作(附网站和操作指导)

    导言 PDF 处理是日常工作中的常见需求,包括 PDF 合并.删除.提取等.更复杂的任务如:将 PDF 转换成 图像. 下面通过几个简单的例子和一份代码,帮助大家解决上面的需求,操作非常简单. 在文末 ...

最新文章

  1. button 去掉原生边框
  2. 计算机电缆称赞千 捷网络下拉刷词,电脑常用技巧
  3. Centos 7 64位 minimal 最小化安装的系统中静默安装oracle 11g r2(无图形化安装)
  4. 时间更新服务器推荐 - NTP时间同步服务器集群:ntp.api.bz
  5. 真格量化-持仓量第n档卖方主力跟随策略
  6. 字符变量赋值规则_Java的常量、变量、数据类型(基础篇二)
  7. IBM 、M$ 、Google Apple
  8. 普通html优化处理,iOS 数据优化之处理HTML字符串
  9. 从 JavaScript 到 TypeScript 6 - Vue 引入 TypeScript
  10. cmd命令行怎样运行python,在CMD命令行中运行python脚本的方法
  11. NDB Cluster基本操作
  12. 远程监控系统中关于TP-Link路由器的设置方法
  13. 细品这杯香浓的咖啡——阿里中间件高级专家沈询的Java之旅
  14. 计算机电池维修方案,解决方案:计算机主板电池已耗尽,如果不更换电池该怎么办?如何更换电池...
  15. word制作员工手册教学
  16. 0基础如何学习安卓开发
  17. Ardunio下的STM32串口通信
  18. 教你看别人的QQ密码
  19. 基于JavaUI的打字游戏
  20. What is Index?索引是什么?

热门文章

  1. Tapestry5项目的导入
  2. 怎么完全卸载赛门铁克_Symantec卸载方法,赛门铁克卸载
  3. HyperLPR中文车牌识别
  4. 服务器修改开机启动项,启动项设置_服务器开机启动项
  5. SC;FC;LC;光纤接口介绍
  6. 2022还不错的和平精英画质助手iApp源码+附成品
  7. gephi java教程_gephi生成图(java版)
  8. android计算器(按钮版)
  9. 最新视频磨皮降噪神器 轻轻松松完成视频磨皮!Beauty box
  10. 数字藏品APP源码,无加密