当前位置: 代码网 > it编程>前端脚本>Python > Python使用pypdf实现按自定义页码拆分PDF文件

Python使用pypdf实现按自定义页码拆分PDF文件

2025年11月27日 Python 我要评论
在处理 pdf 文件时,我们经常需要按章节或页码范围拆分 pdf。本文将分享一个简单实用的 python 方法,使用 pypdf 库按自定义页码拆分 pdf,并保存为单独文件。一、环境准备首先,确保安

在处理 pdf 文件时,我们经常需要按章节或页码范围拆分 pdf。本文将分享一个简单实用的 python 方法,使用 pypdf 库按自定义页码拆分 pdf,并保存为单独文件。

一、环境准备

首先,确保安装了 pypdf 库:

pip install pypdf

二、实现功能

下面的 python 脚本可以将 pdf 按指定的页码范围拆分为多个文件,并保存到指定文件夹。

from pypdf import pdfreader, pdfwriter
import os

def split_pdf_by_page_ranges(input_pdf, output_folder, ranges):
    reader = pdfreader(input_pdf)

    # 如果输出目录不存在,则创建
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # 遍历页码范围
    for idx, (start_page, end_page) in enumerate(ranges, 1):
        writer = pdfwriter()

        # 页码从 0 开始,用户输入通常是从 1 开始
        for page_num in range(start_page - 1, end_page):
            if page_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"
        with open(output_filename, "wb") as output_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
split_pdf_by_page_ranges("input.pdf", "./output_manual_split", page_ranges)

三、功能解析

1.读取 pdf 文件

reader = pdfreader(input_pdf)

pdfreader 用于读取 pdf 文件内容。

2.创建输出目录

if not os.path.exists(output_folder):
    os.makedirs(output_folder)

避免输出目录不存在导致报错。

3.按页码拆分

for page_num in range(start_page - 1, end_page):
    writer.add_page(reader.pages[page_num])

页码从 0 开始,所以用户输入从 1 开始,需要减 1。

4.保存拆分后的文件

with open(output_filename, "wb") as output_file:
    writer.write(output_file)

每个章节生成独立 pdf 文件,并按章节序号命名。

四、运行效果

假设原 pdf 文件名为 input.pdf,执行脚本后,会在 ./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

每个文件对应你自定义的页码范围。

五、总结

通过 pypdf,我们可以非常方便地按自定义页码拆分 pdf 文件,无需复杂操作,适合电子书分章节、资料拆分等场景。

到此这篇关于python使用pypdf实现按自定义页码拆分pdf文件的文章就介绍到这了,更多相关python自定义拆分pdf内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com