当前位置: 首页 > news >正文

Python怎样将PDF拆分成多个文件

在 Python 中,你可以使用 PyPDF2 库来拆分 PDF 文件。以下是一个简单的示例,演示如何将一个 PDF 文件拆分为多个单页 PDF 文件。

首先,你需要安装 PyPDF2 库。如果尚未安装,可以使用以下命令进行安装:

pip install PyPDF2

然后,可以使用以下代码来拆分 PDF 文件:

import PyPDF2def split_pdf(input_pdf_path, output_folder):# 打开输入的 PDF 文件with open(input_pdf_path, "rb") as input_pdf_file:# 创建一个 PdfFileReader 对象pdf_reader = PyPDF2.PdfFileReader(input_pdf_file)# 获取 PDF 文件的总页数num_pages = pdf_reader.numPages# 遍历每一页for page_number in range(num_pages):# 创建一个 PdfFileWriter 对象pdf_writer = PyPDF2.PdfFileWriter()# 将当前页添加到 PdfFileWriter 对象pdf_writer.addPage(pdf_reader.getPage(page_number))# 创建输出文件路径output_pdf_path = f"{output_folder}/page_{page_number + 1}.pdf"# 将当前页写入新的 PDF 文件with open(output_pdf_path, "wb") as output_pdf_file:pdf_writer.write(output_pdf_file)print(f"已保存: {output_pdf_path}")# 示例使用
input_pdf_path = "input.pdf"  # 输入 PDF 文件的路径
output_folder = "output_pages"  # 输出文件夹的路径
split_pdf(input_pdf_path, output_folder)

请确保将 input.pdfoutput_pages 替换为实际的输入文件路径和输出文件夹路径。运行此代码后,PDF 文件将被拆分为多个单页 PDF 文件,并保存到指定的输出文件夹中。

相关文章:

  • 对gRPC中常见的 grpc::CreateChannel()这个类所创建的对象所包含的属性做详细介绍
  • 力扣496. 下一个更大元素 I
  • 【数据库基础-mysql详解之索引的魅力(N叉树)】
  • sheng的学习笔记-docker部署Greenplum
  • 会话机制:Session
  • Vue3实战笔记(46)—Vue 3高效开发定制化Dashboard的权威手册
  • Python库之`lxml`的高级用法深度解析
  • Python开发Android手机APP
  • Java入门基础学习笔记42——常用API
  • Python Flask 图片上传与下载
  • 基于yolov5和desnet的猫咪识别模型
  • 深度学习中的优化算法二(Pytorch 19)
  • Spring ----> IOC
  • 探索集合python(Set)的神秘面纱:它与字典有何不同?
  • 【建议收藏】30个较难Python脚本,纯干货分享
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Angular 响应式表单之下拉框
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • ES10 特性的完整指南
  • express + mock 让前后台并行开发
  • go append函数以及写入
  • JavaScript 基本功--面试宝典
  • js中forEach回调同异步问题
  • mac修复ab及siege安装
  • Python学习之路16-使用API
  • 关于List、List?、ListObject的区别
  • 简单数学运算程序(不定期更新)
  • 如何选择开源的机器学习框架?
  • gunicorn工作原理
  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (第一天)包装对象、作用域、创建对象
  • (多级缓存)缓存同步
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .CSS-hover 的解释
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET_WebForm_layui控件使用及与webform联合使用
  • .Net--CLS,CTS,CLI,BCL,FCL
  • @DataRedisTest测试redis从未如此丝滑
  • @我的前任是个极品 微博分析
  • []我的函数库
  • [17]JAVAEE-HTTP协议
  • [AIGC] MySQL存储引擎详解
  • [Android]RecyclerView添加HeaderView出现宽度问题
  • [Android开源]EasySharedPreferences:优雅的进行SharedPreferences数据存储操作
  • [Asp.net MVC]Bundle合并,压缩js、css文件
  • [BZOJ1060][ZJOI2007]时态同步 树形dp
  • [C++]命名空间等——喵喵要吃C嘎嘎
  • [Cloud Networking] Layer3 (Continue)