Python合并pdf文件的工具
如果你需要一個(gè)PDF文件合并工具,那么本文章完全可以滿足您的要求。哈嘍,大家好呀,這里是滑稽研究所。不多廢話,本期我們利用Python合并把多個(gè)pdf文件合并為一個(gè)。我們提前準(zhǔn)備了5個(gè)pdf文件,來驗(yàn)證代碼。
源代碼:
import os from PyPDF2 import PdfFileReader, PdfFileWriter # 使用os模塊的walk函數(shù),搜索出指定目錄下的全部PDF文件 # 獲取同一目錄下的所有PDF文件的絕對(duì)路徑 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文件中頁面總數(shù) pageCount = input.getNumPages() outputPages += pageCount print("頁數(shù):%d"%pageCount) # 分別將page添加到輸出output中 for iPage in range(pageCount): output.addPage(input.getPage(iPage)) print("合并后的總頁數(shù):%d."%outputPages) # 寫入到目標(biāo)PDF文件 outputStream = open(os.path.join(filepath, outfile), "wb") output.write(outputStream) outputStream.close() print("PDF文件合并完成!") else: print("沒有可以合并的PDF文件!") # 主函數(shù) def main(): file_dir = input('請輸入存有Pdf的文件夾').replace('/','//')# 存放PDF的原文件夾 outfile = "pick_me.pdf" # 輸出的PDF文件的名稱 MergePDF(file_dir, outfile) print('done') main()
可以看到5個(gè)PDF文件合并到了一起,那么到這里就結(jié)束了嗎?當(dāng)然不是,代碼運(yùn)行遇到PDF文件中文件格式較多時(shí),比如多圖,word格式等,會(huì)出現(xiàn)以下報(bào)錯(cuò)。
最后一行報(bào)錯(cuò)的意思為:
PyPDF2。utils.PdfReadError:對(duì)于鍵/Im82,字典中字節(jié)0xc0161處有多個(gè)定義
通俗一點(diǎn)就是說遇到了一個(gè)多義詞,程序不知道該取哪個(gè)意思了。我們點(diǎn)進(jìn)pdf.py文件里,找到下圖位置。
嚴(yán)格模式默認(rèn)是打開的,我們改成False。
構(gòu)造方法:
PyPDF2.PdfFileReader(stream,strict = True,warndest = None,overwriteWarnings = True)
stream:File 對(duì)象或支持與 File 對(duì)象類似的標(biāo)準(zhǔn)讀取和查找方法的對(duì)象,也可以是表示 PDF 文件路徑的字符串。
strict(bool):確定是否應(yīng)該警告用戶所用的問題,也導(dǎo)致一些可糾正的問題是致命的,默認(rèn)是 True
warndest : 記錄警告的目標(biāo)(默認(rèn)是 sys.stderr)
overwriteWarnings(bool):確定是否 warnings.py 用自定義實(shí)現(xiàn)覆蓋 Python 模塊(默認(rèn)為 True)
我們重新運(yùn)行程序.
打開文件夾,可以看到我們的文件已經(jīng)合并好了,打開之后的格式也是沒有錯(cuò)誤的。
那么,問題解決。
如果你只是需要應(yīng)該P(yáng)DF合并工具代碼直接拿走用即可,如果你想學(xué)習(xí)pypdf2這個(gè)實(shí)用的庫,并且希望對(duì)這段代碼進(jìn)行改進(jìn)來適配自己的情況
到此這篇關(guān)于Python合并pdf文件的文章就介紹到這了,更多相關(guān)Python合并pdf文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python如何基于Tesseract實(shí)現(xiàn)識(shí)別文字功能
這篇文章主要介紹了Python如何基于Tesseract實(shí)現(xiàn)識(shí)別文字功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Python Vaex實(shí)現(xiàn)快速分析100G大數(shù)據(jù)量
Vaex是一個(gè)開源的DataFrame庫,它可以對(duì)表格數(shù)據(jù)集進(jìn)行可視化、探索、分析,甚至機(jī)器學(xué)習(xí),這些數(shù)據(jù)集和你的硬盤驅(qū)動(dòng)器一樣大。本文就來聊聊如何利用Vaex實(shí)現(xiàn)快速分析100G大數(shù)據(jù)量,需要的可以參考一下2023-03-03Python實(shí)現(xiàn)自動(dòng)簽到腳本功能
這篇文章主要介紹了Python實(shí)現(xiàn)自動(dòng)簽到腳本,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08解決TensorFlow訓(xùn)練模型及保存數(shù)量限制的問題
這篇文章主要介紹了解決TensorFlow訓(xùn)練模型及保存數(shù)量限制的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03Python中數(shù)字以及算數(shù)運(yùn)算符的相關(guān)使用
這篇文章主要介紹了Python中數(shù)字以及算數(shù)運(yùn)算符的相關(guān)使用,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-10-10python讀取excel進(jìn)行遍歷/xlrd模塊操作
這篇文章主要介紹了python讀取excel進(jìn)行遍歷/xlrd模塊操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07