Python分割PDF

忽然發現需要有一個PDF分割器的功能,以前有Adobe Acrobat安裝時,自帶PDF打印機。現在卸載了Acrobat,沒有PDF打印機,不能實現打印多少頁的功能。

自然想到Python的PyPDF2模塊。

在原先的合併PDF中的代碼,修改一下,應該就可以。比如我要拷貝PDF文件中的前面4頁。

# -*- 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() pdf_fileName = getFileName(filepath) if pdf_fileName: for pdf_file in pdf_fileName: print("path:%s"%pdf_file) # 讀取源PDF文件 input = PdfFileReader(open(pdf_file, "rb")) # 獲得源PDF文件中頁面總數 pageCount = input.getNumPages() # 分別將page添加到輸出output中 for iPage in range(pageCount):
        # 添加條件判斷
        if iPage <=3: #這樣就可以保存前面4頁了,或者有其他的組合,按實際需要   output.addPage(input.getPage(iPage)) # 寫入到目標PDF文件 outputStream = open(os.path.join(filepath, outfile), "wb") output.write(outputStream) outputStream.close() print("PDF split complete!") else: print("nothing to split") # 主函數 def main(): time1 = time.time() file_dir = r'd:\downloads\pdf\' # 存放PDF的原文件夾 outfile = "split.pdf" # 輸出的PDF文件的名稱 MergePDF(file_dir, outfile) time2 = time.time() print('time consumed %s s.' %(time2 - time1)) main()

需要注意的是,這個文件夾下不能有其他的PDF文件。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章