美文网首页
pdf奇数插入空白页

pdf奇数插入空白页

作者: michaelxwang | 来源:发表于2023-05-10 21:31 被阅读0次
    # -*- coding: utf-8 -*-
    """
    Created on Thu May 11 21:08:06 2023
    
    @author: xianglong
    """
    
    #奇数页PDF插入空白页
    import os,PyPDF2,pyperclip
    pathofcwd = r'./讲义/'
    # ^ 需要处理的pdf存放位置
    class pdfReader:
        # ^ 处理pdf的一个类,把和pdf处理有关的代码都放在这里了
        blankPdfPath = r'D:/学习/CPA/空白.pdf'
        # ^ 空白页pdf存放位置
        def __init__(self,pdfPath):
            self.pdfPath = pdfPath
            self.blankPageFile, self.blankPage = self.openAndReadit(self.blankPdfPath)
            self.pdfFile, self.pdfReader = self.openAndReadit(self.pdfPath)
        
        def openAndReadit(self,pdfpath):
            """
            generate the pdfReader object for given path in parameter
            """
            pdfFile = open(pdfpath, 'rb')
            pdfReader = PyPDF2.PdfReader(pdfFile)
            return (pdfFile,pdfReader)
     
        def appendBlank(self):
            """
            no para, return a pdf writer with blankPage appended
            """
            pdfWriter = PyPDF2.PdfWriter()
            for pageNum in range(len(self.pdfReader.pages)):
                pageObj = self.pdfReader.pages[pageNum]
                print(pageObj)
                pdfWriter.add_page(pageObj)
            # add the blank page:
            pdfWriter.add_page(self.blankPage.pages[0])
            return pdfWriter
        
        def closeAllFile(self):
            self.blankPageFile.close()
            self.pdfFile.close()
     
    os.chdir(pathofcwd)
    fileList = os.listdir()
     
    pdfList = filter(
        lambda e:os.path.splitext(e)[1]=='.pdf',
        fileList
    )
    # ^ 过滤文件列表,只保留pdf
     
    pdfReaderList = map(
        lambda e:pdfReader(e),
        pdfList
    )
    # ^ 根据pdf文件路径生成pdfReader类
     
    pdfReaderList = filter(
        lambda e: len(e.pdfReader.pages) % 2 == 1,
        pdfReaderList
    )
    # ^ 只保留奇数页pdf的pdfReader类
     
    pdfReaderList = list(pdfReaderList)
     
    for pdfReader in pdfReaderList:
        pdfAddBlankWriter = pdfReader.appendBlank()
        outputPath = os.path.splitext(pdfReader.pdfPath)[0]+'_addBlank'+'.pdf'
        pdfOutputFile = open(outputPath,'wb')
        pdfAddBlankWriter.write(pdfOutputFile)
        pdfOutputFile.close()
        pdfReader.closeAllFile()
        print("preparing to output as:%s" % outputPath)
    

    相关文章

      网友评论

          本文标题:pdf奇数插入空白页

          本文链接:https://www.haomeiwen.com/subject/okvjsdtx.html