采用Python 将PDF文件按照页码进行切分并保存

工作中经常会遇到 需要将一个大的PDF文件 进行切分,比如仅需要大PDF文件的某几页 或者连续几页,一开始都是用会员版本的WPS,但是对于程序员,就是要采用技术白嫖

这里就介绍一个 python的PDF 包  PyPDF2

其安装方式也很简单  

pip install PyPDF2

安装完成后 我们给定以下代码即可进行 PDF文件 切分

def cut_pdf(pdf_path):
    """
    :return: 根据指定的PDF文件 以及指定的页面以及页面范围  将原始输入PDF文件进行按照页为单位进行截取 并保存为新文件
    """
    import PyPDF2
    out_pdf = PyPDF2.PdfWriter()
    dst_file = f'output.pdf'

    conti_dict = {60: 70}  # 连续页的集合  分别是{"起始页":"结束页"}
    single_idx_list = [23]  # 单页的集合
    with open(pdf_path, 'rb') as src_file:
        reader = PyPDF2.PdfReader(src_file)
        pages = reader.pages
        # 保存独立的页面
        for i in single_idx_list:
            out_pdf.add_page(reader.pages[i - 1])
        # 保存连续的页面
        for i in conti_dict.keys():
            start_idx = i
            end_idx = conti_dict[i]
            # 针对每一对{起始:结束} 对 将其对应的PDF对象保存在列表中
            for p in range(start_idx - 1, end_idx):
                out_pdf.add_page(reader.pages[p])

        with open(dst_file, 'ab') as out:
            out_pdf.write(out)

经过验证是可行的 

我们只需要在 conti_dict 变量中 键入连续PDF页面的起止部分

以及在 single_idx_list变量中将单独的页面追加在列表中即可

你可能感兴趣的:(pdf)