合并PDF文件 Python

合并pdf的python的程序,基于pyPdf包开发,源代码如下:

# -*- coding:utf-8*-  
import sys  
reload(sys)  
sys.setdefaultencoding('utf-8')  
  
import fnmatch  
import os  
import os.path  
from pyPdf import PdfFileReader,PdfFileWriter  
import time  
time1=time.time()  
  
# 使用os模块walk函数,搜索出某目录下的全部pdf文件  
######################获取同一个文件夹下的所有PDF文件名#######################  
def getFileName(filepath):  
    file_list = []  
    for n in range(0, 3):  
        file_list.append(str(n)+'.pdf')       
    return file_list    
  
def getPdfFiles(filepath):  
    file_list = []  
    dirs = os.listdir(filepath)                # 获取指定路径下的文件  
    for i in dirs:                             # 循环读取路径下的文件并筛选输出  
        if os.path.splitext(i)[1] == ".pdf":   # 筛选csv文件  
            print i                            # 输出所有的csv文件  
            file_list.append(i)
    return file_list    
  
##########################合并同一个文件夹下所有PDF文件########################  
def MergePDF(filepath,outfile):  
    output=PdfFileWriter()  
    outputPages=0  
    pdf_fileName=getFileName(filepath)  
    #pdf_fileName=getPdfFiles(filepath)  
    print pdf_fileName  
    for each in pdf_fileName:  
        # 读取源pdf文件  
        input = PdfFileReader(file('./'+each, "rb"))  
        # 如果pdf文件已经加密,必须首先解密才能使用pyPdf  
        if input.isEncrypted == True:  
            input.decrypt("map")
        # 获得源pdf文件中页面总数  
        pageCount = input.getNumPages()  
        outputPages += pageCount  
        print pageCount  
        # 分别将page添加到输出output中  
        for iPage in range(0, pageCount):  
            output.addPage(input.getPage(iPage))     
    print "All Pages Number:"+str(outputPages)  
    # 最后写pdf文件  
    outputStream=file(filepath+outfile,"wb")  
    output.write(outputStream)  
    outputStream.close()  
    print "finished"  
  
if __name__ == '__main__':  
    file_dir = r'./'  
    out=u"00.pdf"  
    MergePDF(file_dir,out)  
    time2 = time.time()  
    print u'cost time:' + str(time2 - time1) + 's'  

你可能感兴趣的:(合并PDF文件 Python)