合併PDF文件-PyPDF2

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章