【Python】用Python實現(xiàn)PDF文件分割和合并

????既然如此,為何不自己實現(xiàn)這個功能呢?上代碼
#?導(dǎo)入讀寫pdf模塊
from?PyPDF2?import?PdfFileReader,?PdfFileWriter
'''
注意:
頁數(shù)從0開始索引
range()是左閉右開區(qū)間
'''
def?split_pdf(file_name,?start_page,?end_page,?output_pdf):
????'''
????:param?file_name:待分割的pdf文件名
????:param?start_page:?執(zhí)行分割的開始頁數(shù)
????:param?end_page:?執(zhí)行分割的結(jié)束位頁數(shù)
????:param?output_pdf:?保存切割后的文件名
????'''
????#?讀取待分割的pdf文件
????input_file?=?PdfFileReader(open(file_name,?'rb'))
????#?實例一個?PDF文件編寫器
????output_file?=?PdfFileWriter()
????#?把分割的文件添加在一起
????for?i?in?range(start_page,?end_page):
????????output_file.addPage(input_file.getPage(i))
????#?將分割的文件輸出保存
????with?open(output_pdf,?'wb')?as?f:
????????output_file.write(f)
def?merge_pdf(merge_list,?output_pdf):
????"""
????merge_list:?需要合并的pdf列表
??? output_pdf:合并之后的pdf名
????"""
????#?實例一個?PDF文件編寫器
????output?=?PdfFileWriter()
????for?ml?in?merge_list:
????????pdf_input?=?PdfFileReader(open(ml,?'rb'))
????????page_count?=?pdf_input.getNumPages()
????????for?i?in?range(page_count):
????????????output.addPage(pdf_input.getPage(i))
????output.write(open(output_pdf,?'wb'))
if?__name__?==?'__main__':
????#?分割pdf
????split_pdf("test.pdf",?0,?3,?"0-2.pdf")
????split_pdf("test.pdf",?7,?12,?"7-11.pdf")
????split_pdf("test.pdf",?18,?23,?"18-22.pdf")
????split_pdf("test.pdf",?27,?33,?"26-32.pdf")
????split_pdf("test.pdf",?40,?44,?"40-43.pdf")
????split_pdf("test.pdf",?46,?51,?"46-50.pdf")
????split_pdf("test.pdf",?58,?66,?"58-65.pdf")
????split_pdf("test.pdf",?77,?84,?"77-83.pdf")
????split_pdf("test.pdf",?93,?97,?"93-96.pdf")
????split_pdf("test.pdf",?102,?106,?"102-105.pdf")
????#?合并pdf
????#?合并的pdf列表
????pdf_list?=?["0-2.pdf",?"7-11.pdf",?"18-22.pdf",?"26-32.pdf",?"40-43.pdf",?"46-50.pdf",?"58-65.pdf",?"77-83.pdf",?"93-96.pdf",?"102-105.pdf"]
????merge_pdf(pdf_list,?"all.pdf")
????當(dāng)然上面的代碼一開始不能直接運行,但不要著急,參照參考資料中的報錯鏈接將問題解決,就可以運行了。
參考資料:
報錯:
https://blog.csdn.net/kmesky/article/details/102695520
代碼:
https://blog.csdn.net/wnma3mz/article/details/78823195
往期精彩回顧
獲取本站知識星球優(yōu)惠券,復(fù)制鏈接直接打開:
https://t.zsxq.com/qFiUFMV
本站qq群704220115。
加入微信群請掃碼:
評論
圖片
表情
