news 2026/4/23 13:11:47

Python 使用 pypdf 按指定页码范围批量拆分 PDF(分章节)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python 使用 pypdf 按指定页码范围批量拆分 PDF(分章节)

在处理电子书、扫描书籍或技术文档时,经常会遇到一个需求:

📌按照指定页码范围,把一个 PDF 拆分成多个 PDF 文件(例如按章节拆分)

本文将介绍一种简单、稳定、无需外部依赖的方法,使用 Python 的pypdf库来实现 PDF 的批定页码分割


一、环境准备

1️⃣ Python 版本

  • Python3.8+(推荐 3.9 / 3.10 / 3.11)

可用以下命令确认:

python--version

2️⃣ 安装 pypdf

使用 pip 安装最新版pypdf

pipinstallpypdf

如果你在 Linux / macOS 上,且存在 Python2/3 共存问题,可使用:

pip3installpypdf

安装完成后测试是否成功:

frompypdfimportPdfReader,PdfWriterprint("pypdf installed OK")

二、实现思路说明

🔍 关键点解析

  • PdfReader:读取原始 PDF
  • PdfWriter:创建新的 PDF 文件
  • PDF 页码从 0 开始,而我们日常看到的是从 1 开始
  • 用户只需定义一个页码范围列表即可完成拆分

📌适用场景

  • 按目录拆书
  • 按章节导出
  • 按页码人工校正后的分割

三、完整 Python 实现代码

frompypdfimportPdfReader,PdfWriterimportosdefsplit_pdf_by_page_ranges(input_pdf,output_folder,ranges):reader=PdfReader(input_pdf)# 创建输出目录ifnotos.path.exists(output_folder):os.makedirs(output_folder)foridx,(start_page,end_page)inenumerate(ranges,1):writer=PdfWriter()# PDF 内部页码从 0 开始,因此要 -1forpage_numinrange(start_page-1,end_page):ifpage_num<len(reader.pages):writer.add_page(reader.pages[page_num])else:print(f"Warning: page{page_num+1}out of range.")output_filename=(f"{output_folder}/chapter_{idx}_pages_{start_page}-{end_page}.pdf")withopen(output_filename,"wb")asoutput_file:writer.write(output_file)print(f"Saved{output_filename}")

四、自定义章节页码范围

你只需要定义一个页码区间列表,格式如下:

# ✏️ 自定义分章节页码(格式:[(开始页, 结束页), ...])page_ranges=[(1,34),# 序(35,50),# 第一章(51,73),# 第二章(74,93),# 第三章(94,118),# 第四章(119,152),# 第五章(153,166),# 第六章(167,183),# 第七章(184,206),# 第八章(207,230),# 第九章(231,251),# 第十章]

📌注意事项

  • 页码是PDF 阅读器中看到的页码
  • 不需要关心 0 / 1 的问题,代码已处理
  • 超出 PDF 总页数会自动提示 Warning,不会报错

五、执行拆分

split_pdf_by_page_ranges("input.pdf","./output_manual_split",page_ranges)

执行后目录结构如下:

output_manual_split/ ├── chapter_1_pages_1-34.pdf ├── chapter_2_pages_35-50.pdf ├── chapter_3_pages_51-73.pdf ├── ... └── chapter_11_pages_231-251.pdf

完整代码

frompypdfimportPdfReader,PdfWriterimportosdefsplit_pdf_by_page_ranges(input_pdf,output_folder,ranges):reader=PdfReader(input_pdf)ifnotos.path.exists(output_folder):os.makedirs(output_folder)foridx,(start_page,end_page)inenumerate(ranges,1):writer=PdfWriter()# 页码从 0 开始,用户输入通常是从 1 开始forpage_numinrange(start_page-1,end_page):ifpage_num<len(reader.pages):writer.add_page(reader.pages[page_num])else:print(f"Warning: page{page_num+1}out of range.")output_filename=f"{output_folder}/chapter_{idx}_pages_{start_page}-{end_page}.pdf"withopen(output_filename,"wb")asoutput_file:writer.write(output_file)print(f"Saved{output_filename}")# ✏️ 自定义你的分章节页码(格式:[(开始页, 结束页), ...])page_ranges=[(1,34),# 序(35,50),# 第一章(51,73),# 第二章(74,93),# 第三章(94,118),# 第四章(119,152),# 第五章(153,166),# 第六章(167,183),# 第七章(184,206),# 第八章(207,230),# 第九章(231,251),# 第十章]# 用法示例split_pdf_by_page_ranges("input.pdf","./output_manual_split",page_ranges)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 10:44:50

【PHP微服务架构实战】:从零搭建高可用负载均衡系统

第一章&#xff1a;PHP微服务架构与负载均衡概述在现代Web应用开发中&#xff0c;随着业务规模的不断扩展&#xff0c;传统的单体架构逐渐暴露出可维护性差、扩展困难等问题。PHP作为广泛使用的服务器端脚本语言&#xff0c;也在向微服务架构演进&#xff0c;以提升系统的灵活性…

作者头像 李华
网站建设 2026/4/23 2:56:30

语音合成可用于法庭证据再现?法律伦理边界讨论

语音合成可用于法庭证据再现&#xff1f;法律伦理边界讨论 在一场关键的庭审中&#xff0c;一段模糊不清的监控录音成为案件突破口。然而&#xff0c;由于背景噪音严重、方言浓重且部分语句缺失&#xff0c;法官和陪审团难以准确理解证人原意。此时&#xff0c;如果有一项技术能…

作者头像 李华
网站建设 2026/4/23 10:47:06

中文语音合成新标杆:GLM-TTS在多个维度超越传统方案

中文语音合成新标杆&#xff1a;GLM-TTS在多个维度超越传统方案 在智能语音助手、虚拟主播和有声内容创作日益普及的今天&#xff0c;用户早已不再满足于“能说话”的TTS系统——他们需要的是听得进去、信得过、有温度的声音。尤其是在中文场景下&#xff0c;复杂的声调体系、无…

作者头像 李华
网站建设 2026/4/22 12:16:28

GLM-TTS长文本分段处理技巧:避免生成质量下降的有效方法

GLM-TTS长文本分段处理技巧&#xff1a;避免生成质量下降的有效方法 在有声读物、在线教育和虚拟主播日益普及的今天&#xff0c;AI语音合成已不再是实验室里的概念&#xff0c;而是真正走进了生产流程。GLM-TTS 作为一款支持零样本语音克隆与情感迁移的先进模型&#xff0c;凭…

作者头像 李华
网站建设 2026/4/23 2:27:13

参考音频怎么选?高质量语音克隆的关键输入要素

参考音频怎么选&#xff1f;高质量语音克隆的关键输入要素 在虚拟主播的直播间里&#xff0c;一句自然流畅、带有真实情感的“大家好&#xff0c;欢迎来到我的频道”&#xff0c;可能根本不是真人所说&#xff1b;有声书中的旁白娓娓道来&#xff0c;声音熟悉得像老友重逢&…

作者头像 李华
网站建设 2026/4/16 23:50:50

城市轨道交通客流特征与分布规律研究——以(可选取具体城市为例)

摘要&#xff1a; 随着城市化进程加速&#xff0c;轨道交通已成为大城市公共交通的骨干。精准把握其客流特征与分布规律&#xff0c;对运营组织优化、网络规划、安全管理和商业开发具有重大意义。本文从时间、空间、乘客属性三个维度&#xff0c;系统分析了城市轨道交通客流的典…

作者头像 李华