安装
pip install PyPDF2
完整版使用方法:
# -*- coding:utf-8*-# 利用PyPDF2模块合并同一文件夹下的所有PDF文件# 只需修改存放PDF文件的文件夹变量:dir_path 和 输出文件名变量: file_nameimport osfrom PyPDF2 import PdfFileReader, PdfFileWriterimport time# 使用os模块的walk函数,搜索出指定目录下的全部PDF文件# 获取同一目录下的所有PDF文件的绝对路径def getFileName(filedir):file_list = [os.path.join(root, filespath)for root, dirs, files in os.walk(filedir)for filespath in filesif str(filespath).endswith('pdf')]return file_list if file_list else []# 合并同一目录下的所有PDF文件def MergePDF(filepath, file_name):output = PdfFileWriter()outputPages = 0pdf_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 += pageCountprint("页数:%d" % pageCount)# 分别将page添加到输出output中for iPage in range(pageCount):output.addPage(input.getPage(iPage))print("合并后的总页数:%d." % outputPages)# 写入到目标PDF文件outputStream = open(os.path.join(filepath, file_name), "wb")output.write(outputStream)outputStream.close()print("PDF文件合并完成!")else:print("没有可以合并的PDF文件!")# 主函数def main():time1 = time.time()dir_path = r'D:\BaiduNetdiskDownload\pdf' # 存放PDF的原文件夹file_name = "AAA.pdf" # 输出的PDF文件的名称MergePDF(dir_path, file_name)time2 = time.time()print('总共耗时:%s s.' % (time2 - time1))main()
# -*- coding:utf-8*-# 利用PyPDF2模块合并同一文件夹下的所有PDF文件# 只需修改存放PDF文件的文件夹变量:dir_path 和 输出文件名变量: file_nameimport osfrom PyPDF2 import PdfFileReader, PdfFileWriterdef GetFileName(dir_path):file_list = [os.path.join(dirpath, filesname)for dirpath, dirs, files in os.walk(dir_path)for filesname in files]return file_listdef MergePDF(dir_path, file_name):output = PdfFileWriter()outputPages = 0file_list = GetFileName(dir_path)for pdf_file in file_list:print("文件:%s" % pdf_file.split('\\')[-1], end=' ')# 读取PDF文件input = PdfFileReader(open(pdf_file, "rb"))# 获得源PDF文件中页面总数pageCount = input.getNumPages()outputPages += pageCountprint("页数:%d" % pageCount)# 分别将page添加到输出output中for iPage in range(pageCount):output.addPage(input.getPage(iPage))print("\n合并后的总页数:%d" % outputPages)# 写入到目标PDF文件print("PDF文件正在合并,请稍等......")with open(os.path.join(dir_path, file_name), "wb") as outputfile:# 注意这里的写法和正常的上下文文件写入是相反的output.write(outputfile)print("PDF文件合并完成")if __name__ == '__main__':# 设置存放多个pdf文件的文件夹dir_path = r'D:\BaiduNetdiskDownload\pdf'# 目标文件的名字file_name = "BBB.pdf"MergePDF(dir_path, file_name)
