Python合并pdf文件的工具
如果你需要一個PDF文件合并工具,那么本文章完全可以滿足您的要求。哈嘍,大家好呀,這里是滑稽研究所。不多廢話,本期我們利用Python合并把多個pdf文件合并為一個。我們提前準備了5個pdf文件,來驗證代碼。

源代碼:
import os
from PyPDF2 import PdfFileReader, PdfFileWriter
# 使用os模塊的walk函數(shù),搜索出指定目錄下的全部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文件中頁面總數(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)
# 寫入到目標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個PDF文件合并到了一起,那么到這里就結束了嗎?當然不是,代碼運行遇到PDF文件中文件格式較多時,比如多圖,word格式等,會出現(xiàn)以下報錯。

最后一行報錯的意思為:
PyPDF2。utils.PdfReadError:對于鍵/Im82,字典中字節(jié)0xc0161處有多個定義
通俗一點就是說遇到了一個多義詞,程序不知道該取哪個意思了。我們點進pdf.py文件里,找到下圖位置。

嚴格模式默認是打開的,我們改成False。
構造方法:
PyPDF2.PdfFileReader(stream,strict = True,warndest = None,overwriteWarnings = True)
stream:File 對象或支持與 File 對象類似的標準讀取和查找方法的對象,也可以是表示 PDF 文件路徑的字符串。
strict(bool):確定是否應該警告用戶所用的問題,也導致一些可糾正的問題是致命的,默認是 True
warndest : 記錄警告的目標(默認是 sys.stderr)
overwriteWarnings(bool):確定是否 warnings.py 用自定義實現(xiàn)覆蓋 Python 模塊(默認為 True)
我們重新運行程序.

打開文件夾,可以看到我們的文件已經(jīng)合并好了,打開之后的格式也是沒有錯誤的。
那么,問題解決。

如果你只是需要應該PDF合并工具代碼直接拿走用即可,如果你想學習pypdf2這個實用的庫,并且希望對這段代碼進行改進來適配自己的情況
到此這篇關于Python合并pdf文件的文章就介紹到這了,更多相關Python合并pdf文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python多線程編程(三):threading.Thread類的重要函數(shù)和方法
這篇文章主要介紹了Python多線程編程(三):threading.Thread類的重要函數(shù)和方法,本文講解了線程名稱、join方法、setDaemon方法等內(nèi)容,需要的朋友可以參考下2015-04-04
pycharm在調(diào)試python時執(zhí)行其他語句的方法
今天小編就為大家分享一篇pycharm在調(diào)試python時執(zhí)行其他語句的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
Python辦公自動化Word轉(zhuǎn)Excel文件批量處理
這篇文章主要為大家介紹了Python辦公自動化Word轉(zhuǎn)Excel文件批量處理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06
Python從Excel讀取數(shù)據(jù)并使用Matplotlib繪制成二維圖像
本課程實現(xiàn)使用 Python 從 Excel 讀取數(shù)據(jù),并使用 Matplotlib 繪制成二維圖像。這一過程中,將通過一系列操作來美化圖像,最終得到一個可以出版級別的圖像。本課程對于需要書寫實驗報告,學位論文,發(fā)表文章,做報告的學員具有較大價值2023-02-02
Python深度學習理解pytorch神經(jīng)網(wǎng)絡批量歸一化
這篇文章主要是Python深度學習篇,通過示例的詳解讓大家更好的理解pytorch神經(jīng)網(wǎng)絡批量歸一化,有需要的的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10
python用PyInstaller打包成windows可執(zhí)行的exe(細致版)
PyInstaller的基本功能是將Python腳本打包成可執(zhí)行文件,這意味著用戶無需安裝Python環(huán)境,就能運行打包后的程序,這篇文章主要介紹了python如何用PyInstaller打包成windows可執(zhí)行exe的相關資料,需要的朋友可以參考下2025-04-04

