不會真的有人會去下載那些廣告免費,實則要收會員費的黑心軟體來進行PDF的拆分合並吧???
在下載兩個均不能免費實現PDF自由拆分、合併,以及PDF列印方式會增加檔案大小的情況下,一個合格的程式設計師肯定不能向不良商家低頭,所以使用PyPDF2實現這些功能,並給大家分享一個簡單、易用、易懂的python小程式。
from PyPDF2 import PdfFileReader, PdfFileMerger, PdfFileWriter def merge(input1,input2,output): file_merger = PdfFileMerger() file_merger.append(input1) file_merger.append(input2) file_merger.write(output) def split(input,output,start_page, end_page): try: read_file = input fp_read_file = open(read_file, 'rb') pdf_input = PdfFileReader(fp_read_file) # 將要分割的PDF內容格式話 page_count = pdf_input.getNumPages() # 獲取PDF頁數 print("該檔案共有{}頁".format(page_count)) # 列印頁數 try: print(f'開始分割{start_page}頁-{end_page}頁,儲存為{output}......') pdf_output = PdfFileWriter() # 範例一個 PDF檔案編寫器 for i in range(start_page, end_page): pdf_output.addPage(pdf_input.getPage(i)) with open(output, 'wb') as sub_fp: pdf_output.write(sub_fp) print(f'完成分割{start_page}頁-{end_page}頁,儲存為{output}!') except IndexError: print(f'分割頁數超過了PDF的頁數') # fp.close() except Exception as e: print(e) if __name__ == '__main__': input1 = open(r"1.pdf", "rb") #開啟第一個PDF檔案 input2 = open(r"2.pdf", "rb") #開啟第二個PDF檔案 output=r'submit.pdf' merge(input1,input2,output) # input = r"submit.pdf" #開啟第二個PDF檔案 # output= r'1.pdf' # split(input,output,9,35) # start 起始頁 從0 開始算,end 是尾頁從1開始算