• 【office办公-pdf篇】pdf合并与拆分让我们摆脱付费软件的功能限制好不好


    好工具,可以事半功倍,今天一起学习Pdf合与分

    工具模块PyPDF2
    层次分析—文件路径与文件读取与保存
    读入文件夹:
    data\in
    读入文件名:temp.pdf
    保存文件夹:
    data\out
    保存文件,1.pdf,2.pdf,3.pdf…
    合并文件:
    431.pdf

    层次分析—从文件中取出每一页

        pdf_writer = PdfFileWriter()
        page = pdfReader.getPage(page_no)
        pdf_writer.addPage(page)
    
    • 1
    • 2
    • 3

    层次分析—从文件中取出每一页
    构造出包括路径和每一页文件名的路径信息

        file ='{0}.pdf'.format(page_no + 1)
        outfile = os.path.join(outdir,file)
    
    • 1
    • 2

    层次分析—创建路径信息到硬盘,同时调用pdf_writer中的保存的页面信息,写入到指定outfile位置
    注:output_pdf是接收来自pdf_writer的写入信息的。

        with open(outfile,'wb') as output_pdf:
            pdf_writer.write(output_pdf)
        print('拆分并把文件写入')
    
    • 1
    • 2
    • 3

    层次分析—重新建立写变量pdf_wrigter,指定序号为3,0,2页面添加到pdf_writer中(合并)

        pdf_writer = PdfFileWriter()
        pdf_writer.addPage(pdfReader.getPage(3))
        pdf_writer.addPage(pdfReader.getPage(0))
        pdf_writer.addPage(pdfReader.getPage(2))
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    层次分析—重新建立文件名,路径,完成文件信息,通过with open()写入硬盘,完成合并后的写入操作

        file = '431.pdf'
        outfile = os.path.join(outdir,file)
        with open(outfile,'wb') as output_pdf:
            pdf_writer.write(output_pdf)
            print('选择需要页合并')
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    以下为完整的代码

    # coding = utf-8
    from PyPDF2 import *
    import os
    indir = r'data\in'
    outdir = r'data\out'
    infile = os.path.join(indir,'temp.pdf') #读取文件路径
    pdfReader = PdfFileReader(infile)
    
    for page_no in range(pdfReader.numPages):
        pdf_writer = PdfFileWriter()
        page = pdfReader.getPage(page_no)
        pdf_writer.addPage(page)
    
        file ='{0}.pdf'.format(page_no + 1)
        outfile = os.path.join(outdir,file)
        
        with open(outfile,'wb') as output_pdf:
            pdf_writer.write(output_pdf)
        print('拆分完成')
        
        pdf_writer = PdfFileWriter()
        pdf_writer.addPage(pdfReader.getPage(3))
        pdf_writer.addPage(pdfReader.getPage(0))
        pdf_writer.addPage(pdfReader.getPage(2))
    
        file = '431.pdf'
        outfile = os.path.join(outdir,file)
        with open(outfile,'wb') as output_pdf:
            pdf_writer.write(output_pdf)
            print('选择需要页合并')
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    读后感:

    1. 代码分段书写,分析,目的是方便读者阅读理解每小段代码的内涵
    2. 通过解析这些小的代码片断,让大家理解代码运行的逻辑
    3. 通过前后的分析让大家知道python代码还是很容易理解,很容易阅读的

    学习体会:

    语言的学习不是一个快速的过程,能力的提升,确实需要知识的累积,每一个小的代码的内涵,组合成大段的代码块,大的代码块组合成整个软件体,从而完成系统性工程的创建。
    提示每一个学习者不要过于心急,在自己的时间允许范围内,让真敲代码,仔细琢磨代码运行的逻辑,积累多了,你终于在某一天,也会突然感到豁然开朗。

  • 相关阅读:
    采用jieba库的posseg函数对剩余有效文本数据进行词性分析
    VSCode使用简介
    咖啡技术培训 | 冲煮技术快速提升有哪些方法?
    缓存学习总结4(分布式缓存)
    初识操作系统
    springboot+vue+nodejs+java卤菜品销售商城系统
    CSS 不需要清除浮动的圣杯布局~面试可能会问
    珠宝加工厂:我的成本下降空间在哪里?
    git删除分支命令
    【详细教程hexo博客搭建】1、从零开始搭建一个能用的博客
  • 原文地址:https://blog.csdn.net/weixin_41704077/article/details/125524379