python 用pypdf2对pdf文件进行分割

4 阅读1分钟

有时候搞了些学习资料文件太大,需要拆分下来发,用wps还得充会员,研究了下原来python早有工具包


from PyPDF2 import PdfReader, PdfWriter


def split_pdf(input_path, output_folder, page_ranges):
    """
    按指定页面范围分割 PDF 文件。

    :param input_path: 输入 PDF 文件路径
    :param output_folder: 输出文件夹路径
    :param page_ranges: 页面范围列表,例如 [(0, 2), (3, 5)]
    """
    # 打开 PDF 文件
    pdf_reader = PdfReader(input_path)

    for i, (start, end) in enumerate(page_ranges):
        # 创建一个新的 PDF 写入器
        pdf_writer = PdfWriter()

        # 将指定范围的页面添加到新 PDF 中
        for page_num in range(start, end + 1):
            pdf_writer.add_page(pdf_reader.pages[page_num])

        # 保存新的 PDF 文件
        output_path = f"{output_folder}/part_{i + 1}.pdf"
        with open(output_path, "wb") as output_file:
            pdf_writer.write(output_file)


# 使用示例
input_path = "c:\Users\11.pdf"
output_folder = "output"  # 输出文件夹路径
page_ranges = [(0, 90), (91, 179)]  # 页面范围列表
split_pdf(input_path, output_folder, page_ranges)