python pdfファイルのマージ

1608 ワード

# -*- coding:utf-8*-


import os
from PyPDF2 import PdfFileReader, PdfFileWriter
import time


def getFileName(filedir):

    file_list = [os.path.join(root, filespath) \
                 for root, dirs, files in os.walk(filedir) \
                 for filespath in files \
                 if str(filespath).endswith('pdf')
                 ]
    return file_list if file_list else []

#           PDF  
def MergePDF(filepath, outfile):

    output = PdfFileWriter()
    outputPages = 0
    pdf_fileName = getFileName(filepath)

    if pdf_fileName:
        for pdf_file in pdf_fileName:
            print("  :%s"%pdf_file)
            #    PDF  
            input = PdfFileReader(open(pdf_file, "rb"))
            #    PDF       
            pageCount = input.getNumPages()
            outputPages += pageCount
            print("  :%d"%pageCount)
            #    page     output 
            for iPage in range(pageCount):
                output.addPage(input.getPage(iPage))
        print("       :%d."%outputPages)
        #      PDF  
        outputStream = open(os.path.join(filepath, outfile), "wb")
        output.write(outputStream)
        outputStream.close()
        print("PDF      !")

    else:
        print("       PDF  !")

#    
def main():
    time1 = time.time()
    file_dir = r'C:\\Users\\pchen\\Desktop\\   ' #   PDF     
    outfile = "  .pdf" #    PDF     
    MergePDF(file_dir, outfile)
    time2 = time.time()
    print('    :%s s.' %(time2 - time1))

main()