在日常的學習生活工作中,我們有時會遇到需要合併pdf檔案的需求。這時,我們可以利用相關的pdf軟體(如adobe acrobat reader dc)來完成這個任務,幸運的是,python也為我們提供了這方面的處理模組pypdf2, 借用它,我們可以利用python**來很好地完成這項任務。
pypdf2模組的相關參考文件**為: . 本文將介紹如何利用pypdf2來完成pdf檔案的合併。
首先我們在e盤的cheats資料夾下有如下的pdf檔案:
我們的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檔案,如下:
Python之合併PDF檔案
在日常的學習生活工作中,我們有時會遇到需要合併pdf檔案的需求。這時,我們可以利用相關的pdf軟體 如adobe acrobat reader dc 來完成這個任務,幸運的是,python也為我們提供了這方面的處理模組pypdf2,借用它,我們可以利用python 來很好地完成這項任務。pypdf2...
python 合併pdf檔案
coding utf 8 import os from pypdf2 import pdffilereader,pdffilewriter import time def getfilename filedir file list os.path.join root,filespath for ro...
Python 對pdf檔案切分合併
今天有乙個問題,就是需要實現提取某個pdf文件的某幾頁,合併到另外乙個pdf文件中,想用我的pdf編輯工具實現此功能,發現需要收費,那怎麼能行。想到之前用python處理過word和excel,此時萌生了另外乙個想法,那就是萬能的python有沒有對應的庫呢?網上一查還真的有,那就是pypdf2直接...