使用 pypdf 快速切分 PDF 文件


categories: [Python]

tags: Python MacOS

写在前面

最近有小伙伴问我怎么把 PDF 文档切分成两个大小相近的 PDF文档, 要是在 mac 上, 直接无脑预览就行了, 但是这样不够跨平台, 之后我也尝试过 pymupdf, 但是奈何不支持 arm 架构, 后来还是用 Python 原生的 pypdf 了.

有 AI 加持还是很方便

方法 1:mac 预览

使用预览左边的缩略图栏就可以方便地切分(删除页面)然后保存了. 纯手工操作.

方法 2: pypdf

先安装

bash 复制代码
python -m pip install pypdf

pypdf 和 PyPDF2 以及 PyPDF3 都是如出一辙, 但是后来 PyPDF2 合并到了 pypdf, 所以用 pypdf 即可.

上代码

python 复制代码
#!/opt/homebrew/Caskroom/miniforge/base/envs/py3x/bin/python
import pypdf
import sys


def split_and_save(filename, split_num):
    pdf = pypdf.PdfReader(filename)
    pdf1 = pypdf.PdfWriter()
    pdf2 = pypdf.PdfWriter()

    page_count = len(pdf.pages)

    for i in range(split_num):
        pdf1.add_page(pdf.pages[i])
    for i in range(split_num, page_count):
        pdf2.add_page(pdf.pages[i])

    # save output pdf on current path
    pdf1.write(f'{filename[:-4]}-part1.pdf')
    pdf2.write(f'{filename[:-4]}-part2.pdf')


if __name__ == "__main__":
    if len(sys.argv) != 3:
        print("Usage: split-pdf.py <filename> <split_page_num>")
        exit(-1)
    filename = sys.argv[1]
    split_num = int(sys.argv[2])

    split_and_save(filename, split_num)

API还是很清晰的, 配合python 强大的表达力, 搞个 PDF 不在话下.

使用方法就是

python 复制代码
python split.py input.pdf 10

参数是待切分 PDF 的文件名和从哪一页开始切分, 例如我传入参数是 10, 那就是前 10 页为一个新 PDF, 后面的是一个新的 PDF.

相关推荐
Eric.Lee202121 分钟前
python实现pdf转图片png
linux·python·pdf
优化控制仿真模型1 小时前
【2026年6月最新】英语六级高频核心词汇1500个+历年真题PDF
经验分享·pdf
其实秋天的枫1 小时前
【2026年6月最新】英语六级高频核心词汇1500个+历年真题PDF
经验分享·pdf
开开心心就好3 小时前
桌面图标乱了怎么办,一键恢复固定位置工具
运维·服务器·windows·pdf·excel·3dsmax·houdini
琪伦的工具库5 小时前
从Word/PDF/PPT/Excel批量提取图片:工具使用记录
pdf
asdzx676 小时前
使用 Python 将图片转换为 PDF (含合并)
前端·python·pdf
琪伦的工具库6 小时前
批量提取PDF指定页面为图片:参数配置与DPI选择指南
pdf
weixin_441003641 天前
2027徐涛《核心考案+优题库》电子版pdf
pdf
IT大师兄吖1 天前
paddleOcr 懒人整合包 添加pdf和图片转markdown 添加GPU支持
pdf
IT大师兄吖1 天前
PaddleOCR-VL-1.5 懒人整合包 支持PDF转MD 比PP-StructureV3更精准
pdf