# -*- coding: utf-8 -*-
"""
merger PDF:
https://blog.csdn.net/Lingdongtianxia/article/details/82464212
https://zhuanlan.zhihu.com/p/93239038
list EXE file address:
https://blog.csdn.net/wangziyang777/article/details/106998390
PDF page:
http://cn.voidcc.com/question/p-qgvsadci-sb.html
v0: merger pdf as one pdf
v1: add exit condition by:
pdf.number>99
file.pages>5999
v2: add page number in mergered PDF file
"""
import os
import sys
from PyPDF2 import PdfFileMerger, PdfFileReader, PdfFileWriter
pdfFiles = [] #建立一個裝pdf文件的數組
fileList=[]
numPage=0
#py所在文件可以獲取,但打包成exe會找不到正確路徑
# filePath=os.path.dirname(__file__) # 當前文件所在的目錄
#編譯成exe後文件所在路徑可以正確獲取
filePath=os.path.dirname(os.path.realpath(sys.executable))
print(filePath)
for fileName in os.listdir(filePath): #遍歷該程序所在文件夾內的文件
if fileName.endswith('.pdf'): #找到以.pdf結尾的文件
pdfFiles.append(fileName) #將pdf文件裝進pdfFiles數組內
#exit condition by file number
if len(pdfFiles)>99:
print("too much files>99")
sys.exit()
for fileName in pdfFiles: #拼接絕對地址
fileList.append(os.path.join(filePath,fileName))
fileList.sort() #文件排序
file_merger = PdfFileMerger() #生成一個空白的pdf文件
for pdf in fileList:
numPage += PdfFileReader(pdf).getNumPages()
if numPage>5999:
print("too much page>5999")
sys.exit()
file_merger.append(pdf) #合併pdf
file_merger.write(filePath+"\\merger.pdf")
print('\nPDF file written to %s' % filePath+"\\merger.pdf")
input('Input Enter Key')
此文件支持用pyinstaller編譯成exe文件