当前位置: 首页 > article >正文

采用Python 将PDF文件按照页码进行切分并保存

工作中经常会遇到 需要将一个大的PDF文件 进行切分,比如仅需要大PDF文件的某几页 或者连续几页,一开始都是用会员版本的WPS,但是对于程序员,就是要采用技术白嫖

这里就介绍一个 python的PDF 包  PyPDF2

其安装方式也很简单  

pip install PyPDF2

安装完成后 我们给定以下代码即可进行 PDF文件 切分

def cut_pdf(pdf_path):
    """
    :return: 根据指定的PDF文件 以及指定的页面以及页面范围  将原始输入PDF文件进行按照页为单位进行截取 并保存为新文件
    """
    import PyPDF2
    out_pdf = PyPDF2.PdfWriter()
    dst_file = f'output.pdf'

    conti_dict = {60: 70}  # 连续页的集合  分别是{"起始页":"结束页"}
    single_idx_list = [23]  # 单页的集合
    with open(pdf_path, 'rb') as src_file:
        reader = PyPDF2.PdfReader(src_file)
        pages = reader.pages
        # 保存独立的页面
        for i in single_idx_list:
            out_pdf.add_page(reader.pages[i - 1])
        # 保存连续的页面
        for i in conti_dict.keys():
            start_idx = i
            end_idx = conti_dict[i]
            # 针对每一对{起始:结束} 对 将其对应的PDF对象保存在列表中
            for p in range(start_idx - 1, end_idx):
                out_pdf.add_page(reader.pages[p])

        with open(dst_file, 'ab') as out:
            out_pdf.write(out)

经过验证是可行的 

我们只需要在 conti_dict 变量中 键入连续PDF页面的起止部分

以及在 single_idx_list变量中将单独的页面追加在列表中即可


http://www.kler.cn/news/163517.html

相关文章:

  • 什么是web组态?一文读懂web组态
  • 如何前端存token,后端获取token
  • Redisson出现问题总结
  • C++使用模板的注意事项
  • 2024年SEO策略:如何优化您的知识库?
  • 10 大 Mac 数据恢复软件深度评测
  • Linux常用命令详解与示例
  • 【原创】Mac mini M1安装home-brew
  • C语言搭建项目-学生管理系统(非链表)
  • Unity 2022 + Android 接入微信登录
  • HttpComponents: 领域对象的设计
  • 【C#】序列化和反序列化,以及System.Text.Json和Newtonsoft.Json比较
  • EM32DX-C4【C#】站15
  • .NET Core 依赖注入 Microsoft.Extensions.DependencyInjection
  • 修改移远提供的GobiNet、quectel-CM源码,使其支持有方N720 4G模块
  • 视频汇聚/音视频流媒体视频平台/视频监控EasyCVR分享页面无法播放,该如何解决?
  • 算法基础八
  • 分类信息发布小程序效果如何
  • C# --线程的进化史
  • TQ2440开发板-按键驱动程序设计
  • mmdetection测试保存到新的文件夹,无需标签
  • uni-app 设置tabBar的setTabBarBadge购物车/消息等角标
  • vue-element使用html2canvas实现网页指定区域(指定dom元素)截图
  • 机器人说明书---名词解释016课_C++语言_面向对象(6)
  • Endnote使用教程
  • 【数据结构】——队列实现二叉树的功能
  • Linux信息收集
  • JS原生实现浏览器滚动条滚动侧边栏高亮响应
  • 深度学习在计算机视觉中的应用
  • OpenSSL_密码学摘要