在平常的學習生活工做中,咱們有時會遇到須要合併PDF文件的需求。這時,咱們能夠利用相關的PDF軟件(如Adobe Acrobat Reader DC)來完成這個任務,幸運的是,Python也爲咱們提供了這方面的處理模塊PyPDF2, 借用它,咱們能夠利用Python代碼來很好地完成這項任務。
PyPDF2模塊的相關參考文檔網址爲:https://pythonhosted.org/PyPDF2/ . 本文將介紹如何利用PyPDF2來完成PDF文件的合併。
首先咱們在E盤的Cheats文件夾下有以下的PDF文件:python
咱們的Python代碼完整以下:函數
# -*- coding:utf-8*- # 利用PyPDF2模塊合併同一文件夾下的全部PDF文件 # 只需修改存放PDF文件的文件夾變量:file_dir 和 輸出文件名變量: outfile import os from PyPDF2 import PdfFileReader, PdfFileWriter import 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 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'E:\Cheats' # 存放PDF的原文件夾 outfile = "Cheat_Sheets.pdf" # 輸出的PDF文件的名稱 MergePDF(file_dir, outfile) time2 = time.time() print('總共耗時:%s s.' %(time2 - time1)) main()
運行上述Python代碼,則會在同一目錄下生成Cheat_Sheets.pdf文件,以下:學習
本次分享到此結束,歡迎代價交流~~spa