python -PyPDF2对pdf 进行拆分

案例一:根据页码对pdf进行拆分,代码如下:

from PyPDF2 import PdfFileReader, PdfFileWriter


import fitz
def split_single_pdf(read_file, start_page, end_page, pdf_file):
    """
    根据页码对pdf进行拆分,形成一个新的pdf,并输出
    :param read_file: 需要处理的pdf文件绝对路径
    :param start_page: 开始页码
    :param end_page:  结束页码
    :param pdf_file: 生成的新的pdf的绝对路径
    :return:
    """
    # 获取原始pdf文件
    fp_read_file = open(read_file, 'rb')
    # 将要分割的PDF内容格式化
    pdf_input = PdfFileReader(fp_read_file)
    # 实例一个 PDF文件编写器
    pdf_output = PdfFileWriter()
    # 把start_page到end_page页放到PDF文件编写器
    for i in range(start_page-1, end_page):
        pdf_output.addPage(pdf_input.getPage(i))
    # PDF文件输出
    with open(pdf_file, 'wb') as pdf_out:
        pdf_output.write(pdf_out)
    print(f'{read_file}分割{start_page}页-{end_page}页完成,保存为{pdf_file}!')

#要处理的pdf文件
file_path = r'D:\Users\admin\Desktop\深圳市花梦资本管理有限公司代花梦费诗1号自强私募投资基金.pdf'
# 切分后文件文件名
pdf_file = r'D:\Users\admin\Desktop\test_results.pdf'
# 切分开始页面
start = 1
# 切分结束页面
end = 4
# split_single_pdf(file_path, start, end, pdf_file)

案例二:根据关键字对pdf进行拆分,代码如下:

def split_pdf(read_file, keywords,  pdf_file):
    '''
   根据关键字keywords对pdf进行拆分,将所有含有keywords的页形成一个新的pdf,并输出
    :param read_file: 需要处理的pdf文件绝对路径
    :param keywords: 关键字
    :param pdf_file: 生成的新的pdf的绝对路径
    :return:
    '''
    f=open(read_file,'rb')
    # 生成pdf文件操作对象
    pdf_reader=PdfFileReader(f)
    pdf_writer = PdfFileWriter()
    # 获取该pdf文件的页数
    # page_nums=pdf_reader.numPages
    for i in range(pdf_reader.numPages):
        pdf_page = pdf_reader.getPage(i)
        page_text=pdf_page.extract_text()
        print(page_text)
        if keywords in page_text:
            pdf_writer.addPage(pdf_reader.getPage(i))
            # print(i + 1, pdf_page.extract_text())

    with open(pdf_file, 'wb') as out:
        pdf_writer.write(out)
    f.close()
    print(f'{read_file}分割含有关键字【{keywords}】页完成,保存为{pdf_file}!')

参考资料:
Python 办公自动化之 PDF 的详细操作(全)
用来自动修改pdf_利用Python处理PDF——裁剪和生成新的PDF
python常用库 自动化办公类 —— PyPDF2(处理pdf文件)

你可能感兴趣的:(自动化,python,自动化)