用Python玩转PDF | 批量拆分文件

2022-11-21 13:28:50 浏览数 (1)

如果一个PDF文件页数较多,导致体积较大,可以将其拆分成几个部分,以方便阅读。那么如何拆分?今天继续分享使用Python编写程序来完成PDF文件的批量拆分。

这里采用按固定页数进行拆分的方式。例如,假设按每份5页进行拆分,那么一个27页的PDF文件会被拆分成6份(27/5=5.4≈6),第1~5份均为5页,第6份为2页。仍然使用PyPDF2模块来拆分PDF文件。以下为完整程序:

代码语言:javascript复制
from pathlib import Path
from PyPDF2 import PdfFileReader, PdfFileWriter
def split_pdf_file(src, size):
    in_dir = Path(src)
    all_pdf_file = list(in_dir.glob('*.pdf'))

    for pdf in all_pdf_file:
        pdf_file_reader = PdfFileReader(str(pdf))
        pages = pdf_file_reader.getNumPages()
        if pages <= size:
            # 页数小于等于要拆分的数size,不进行拆分
            continue

        # 计算拆分数
        count = pages // size   1
        for number in range(count):
            start = size * number
            if number != count - 1:
                end = start   size - 1
            else:
                end = count - 1

            pdf_file_writer = PdfFileWriter()
            for pn in range(start, end   1):
                pdf_file_writer.addPage(pdf_file_reader.getPage(pn))
            pt_name = f'{pdf.stem}_第{number   1}部分.pdf'
            pt_file = src / pt_name
            with open(pt_file, 'wb') as f:
                pdf_file_writer.write(f)

拆分函数,需要两个参数,一个为PDF文件目录src,一个为拆分页数size,也就是多少页文件拆分为一个文件。程序运行后,会把文件目录下所有满足条件的PDF文件,进行拆分,也可以理解为文件批量拆分。

0 人点赞