PDF 拆分/合併

2022-07-31 06:00:56

不會真的有人會去下載那些廣告免費,實則要收會員費的黑心軟體來進行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開始算