采用Python 将PDF文件按照页码进行切分并保存

工作中经常会遇到 需要将一个大的PDF文件 进行切分,比如仅需要大PDF文件的某几页 或者连续几页,一开始都是用会员版本的WPS,但是对于程序员,就是要采用技术白嫖

这里就介绍一个 python的PDF 包  PyPDF2

其安装方式也很简单  

pip install PyPDF2

安装完成后 我们给定以下代码即可进行 PDF文件 切分

def cut_pdf(pdf_path):""":return: 根据指定的PDF文件 以及指定的页面以及页面范围  将原始输入PDF文件进行按照页为单位进行截取 并保存为新文件"""import PyPDF2out_pdf = PyPDF2.PdfWriter()dst_file = f'output.pdf'conti_dict = {60: 70}  # 连续页的集合  分别是{"起始页":"结束页"}single_idx_list = [23]  # 单页的集合with open(pdf_path, 'rb') as src_file:reader = PyPDF2.PdfReader(src_file)pages = reader.pages# 保存独立的页面for i in single_idx_list:out_pdf.add_page(reader.pages[i - 1])# 保存连续的页面for i in conti_dict.keys():start_idx = iend_idx = conti_dict[i]# 针对每一对{起始:结束} 对 将其对应的PDF对象保存在列表中for p in range(start_idx - 1, end_idx):out_pdf.add_page(reader.pages[p])with open(dst_file, 'ab') as out:out_pdf.write(out)

经过验证是可行的 

我们只需要在 conti_dict 变量中 键入连续PDF页面的起止部分

以及在 single_idx_list变量中将单独的页面追加在列表中即可

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

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

相关文章

Linux 中用户与权限

1.添加用户 useradd 1)创建用户 useradd 用户名 2)设置用户密码 passwd 用户名 设置密码是便于连接用户时使用到,如我使用物理机链接该用户 ssh 用户名 ip 用户需要更改密码的话,使用 passwd 指令即可 3)查看用户信息 id 用…

Landsat 5 C02数据集2007-2011年

Landsat 5是美国陆地卫星系列(Landsat)的第五颗卫星,于1984年3月1日发射,2011年11月停止工作。16天可覆盖全球范围一次。Landsat5_C2_TOA数据集是由Collection2 level1数据通过MTL文件计算得到的TOA反射率产品。数据集的空间分辨率…

STM32开发基础知识之位操作、宏定义、ifdef条件编译、extern变量申明、typedef类型别名、结构体

一、引言 本文将对STM32入门开发的基本C语言基础知识进行回顾和总结,一边学者在开发过程中能较顺利地进行。主要包括位操作、define宏定义、ifdef条件编译、extern变量申明、typedef类型别名、结构体等基本知识。 二、基础C语言开发知识总结 (一&…

无频闪护眼灯哪个好?顶级无蓝光频闪护眼台灯推荐

国家卫生健康委员会疾控局宋士勋表示,根据近期发布的2021年监测数据来看,截至2020年,我国儿童青少年总体的近视率是52.7%,从不同年龄段来看,幼儿园6岁孩子的近视率达到14.3%,小学达到35.6%,初中…

『亚马逊云科技产品测评』活动征文|基于亚马逊EC2云服务器配置Nginx静态网页

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 亚马逊EC2云服务器(Elastic Compute Cloud)是亚马…

【Linux】Linux基础

文章目录 学习目标操作系统不同应用领域的主流操作系统虚拟机 Linux系统的发展史Linux内核版和发行版 Linux系统下的文件和目录结构单用户操作系统vs多用户操作系统Windows和Linux文件系统区别 Linux终端命令格式终端命令格式查阅命令帮助信息 常用命令显示文件和目录切换工作目…

Spatial Data Analysis(三):点模式分析

Spatial Data Analysis(三):点模式分析 ---- 1853年伦敦霍乱爆发 在此示例中,我将演示如何使用 John Snow 博士的经典霍乱地图在 Python 中执行 KDE 分析和距离函数。 感谢 Robin Wilson 将所有数据数字化并将其转换为友好的 G…

数字串最大乘积切分(动态规划)

不得不说&#xff0c;动态规划是真的骚 题解已经在图片里面了 代码如下&#xff1a; #include<stdio.h> long long gethnum(long long n);int main(void) {//定义变量并输入int N, M;long long dp[19][7] {0}, num[20][20] {0};scanf("%d%d", &N, &am…

Ext JS 之拖拽Grid(Drag and Drop Grid)

Ext JS 如何实现Grid的拖拽 Ext JS 提供了一个Grid的插件类 Ext.grid.plugin.DragDrop 实现Grid 的拖放功能, 该类的别名是 plugin.gridviewdragdrop。 该插件会将特定的Ext.dd.DragZone和Ext.dd.DropZone实例附加到了Grid的View 上,DropZone是放置的区块,接收来自具有相同…

Linux(统信UOS) 发布.Net Core,并开启Https,绑定证书

实际开发中&#xff0c;有时会需要为小程序或者需要使用https的应用提供API接口服务&#xff0c;这就需要为.Net Core 配置https&#xff0c;配置起来很简单&#xff0c;只需要在配置文件appsettings.json中添加下面的内容即可 "Kestrel": {"Endpoints": …

anaconda3的激活和Cvcode配置C++:报错:CondaIOError: Missing write permissions in:

报错&#xff1a;CondaIOError: Missing write permissions in: 原因&#xff1a;anaconda所在文件夹只有root 才有权限 查看用户名 whoamisudo chown -R 用户名 /home/anaconda3激活anaconda3 #激活 source activate #退出 source deactivate 配置Cvcode配置C 首先看g的…

代码随想Day28 | 93.复原IP地址、78.子集、90.子集II

93.复原IP地址 这道题首先要解决的一个问题是&#xff0c;判断某个字符串是合格的ip地址&#xff1a; 主要考虑到如下三点&#xff1a; 以0为开头的数字不合法里有非正整数字符不合法如果大于255了不合法 接下来&#xff0c;递归三部走&#xff1a; 参数&#xff1a;除了控制…

leetcode 1004. 最大连续1的个数 III(优质解法)

代码&#xff1a; class Solution {public int longestOnes(int[] nums, int k) {int lengthnums.length;int zero0; //计数器&#xff0c;计数翻转 0 的个数int max0; //记录当前获得的最长子数组长度for(int left0,right0;right<length;right){if(nums[right]0){zero;wh…

IBM Qiskit量子机器学习速成(三)

Torch连接器和混合量子神经网络 本章内容介绍如何将QNN作为一般的Torch神经层嵌入Torch框架的经典神经网络。首先我们会学习如何嵌入EstimatorQNN&#xff0c;最后我们会使用这一技术实现手写数字的识别。 一般步骤 首先创建特征映射电路(feature map)和假设(ansatz)分别作为…

tomcat结构目录有哪些

Tomcat服务器结构目录包括以下内容&#xff1a; conf目录&#xff1a;存放Tomcat的配置信息&#xff0c;包括server.xml、context.xml、web.xml等核心配置文件。bin目录&#xff1a;存放Tomcat启动和关闭脚本&#xff0c;如catalina.sh、setenv.sh&#xff08;可选&#xff09…

深信服行为管理AC设置用户定时注销

PS&#xff1a;设置用户无流量注销及每天定时注销 AC版本&#xff1a;AC13.0.62.001 Build20221107 官方通告&#xff1a; 截止标准版本AC12.0.80和AC13.0.80&#xff0c;暂不支持指定周期时间内注销一次所有用户&#xff0c;仅支持每天的固定时间注销所有用户&#xff0c;每…

基于web的ssm网络在线考试系统源码和论文

摘要 随着Internet的发展&#xff0c;人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化&#xff0c;网络化和电子化。网上管理&#xff0c;它将是直接管理网络在线考试系统的最新形式。本论文是以构建网络在线考试系统为目标&#xff0c;使用 java技术制…

软件测试方法之等价类测试

01 等价类划分法 1、应用场合 有数据输入的地方&#xff0c;可以使用等价类划分法。 从大量数据中挑选少量代表数据进行测试。 2、测试思想 穷举测试&#xff1a;把所有可能的数据全部测试一遍叫穷举测试。穷举测试是最全面的测试&#xff0c;但是在实际工作中不能采用&am…

vue3安装markdown-it

记录一个坑 vue ts使用markdown-it需要使用以下命令安装才行 npm install --save markdown-it vue/compiler-sfc来源https://juejin.cn/s/vue3%20markdown-it

Android View.inflate 和 LayoutInflater.from(this).inflate的区别

前言 两个都是布局加载器&#xff0c;而View.inflate是对 LayoutInflater.from(context).inflate的封装&#xff0c;功能相同&#xff0c;案例使用了dataBinding。 View.inflate(context, layoutResId, root) LayoutInflater.from(context).inflate(layoutResId, root, fals…