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

Written by

in

文章目录
  • 首先,确保安装了 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.pdfchapter_2_pages_35-50.pdfchapter_3_pages_51-73.pdf…chapter_11_pages_231-251.pdf 每个文件对应你自定义的页码范围。
  • 通过 pypdf,我们可以非常方便地按自定义页码拆分 PDF 文件,无需复杂操作,适合电子书分章节、资料拆分等场景。 到此这篇关于Python使用pypdf实现按自定义页码拆分PDF文件的文章就介绍到这了,更多相关Python自定义拆分PDF内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python使用pypdf按文件大小智能拆分 PDF Python中高效拆分PDF文档的多种方法指南 基于Python实现进阶版PDF合并/拆分工具 Python实现合并与拆分多个PDF文档中的指定页 Python进行PDF文件拆分的示例详解 Python实现将PDF文件拆分任意页数 Python实现简单拆分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内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • Python使用pypdf按文件大小智能拆分 PDF
    • Python中高效拆分PDF文档的多种方法指南
    • 基于Python实现进阶版PDF合并/拆分工具
    • Python实现合并与拆分多个PDF文档中的指定页
    • Python进行PDF文件拆分的示例详解
    • Python实现将PDF文件拆分任意页数
    • Python实现简单拆分PDF文件的方法

    站内搜索