python切割pdf文件

很简单直接上代码,需要安装PyPDF2,然后将下面代码保存到cut_pdf.py

"""
前置:
pip install PyPDF2
python cut_pdf.py <fn.pdf> start_page end_page
"""
import os
import sys
from PyPDF2 import PdfReader, PdfWriter


def read_pdf(file_name):
    fp = open(file_name, 'rb')
    reader = PdfReader(fp)
    return reader.pages


def write_pdf(pages, to_fn):
    writer = PdfWriter()
    for p in pages:
        writer.add_page(p)
    with open(to_fn, 'wb') as ofp:
        writer.write(ofp)


def cut_pdf(file_path, b, e):
    pages = read_pdf(file_path)

    file_dir, file_name = os.path.split(file_path)
    file_base, file_ext = os.path.splitext(file_name)
    e = min(e, len(pages))
    new_file = file_path.replace(file_base, f'{file_base}_{b}_{e}')

    write_pdf(pages[b:e+1], new_file)
    return new_file


if __name__ == '__main__':
    if len(sys.argv) < 4:
        print('用法:\n\tpython <pdf_file> <start_page> <end_page>')
        exit(-1)
    pdf_file = sys.argv[1]
    start_page = sys.argv[2]
    end_page = sys.argv[3]
    ans = cut_pdf(pdf_file, int(start_page), int(end_page))
    print(f'文件写入到: {ans}')

看一下执行效果:

$ python cut_pdf.py
用法:
    python <pdf_file> <start_page> <end_page>


$ python cut_pdf.py /Users/neozhao/Documents/图书馆/人文类/罪与罚.pdf 100 110
文件写入到: /Users/neozhao/Documents/图书馆/人文类/罪与罚_100_110.pdf

很简单吧,赶紧保存下来,要用的时候直接用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容