# -*- 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文件