前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Python玩转PDF | 批量拆分文件

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

作者头像
TalkPython
发布2022-11-21 13:28:50
6320
发布2022-11-21 13:28:50
举报
文章被收录于专栏:TalkPythonTalkPython

如果一个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文件,进行拆分,也可以理解为文件批量拆分。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TalkPython 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档