import os
import sys
from reportlab.lib.pagesizes import A4, landscape
from reportlab.pdfgen import canvas
'''
遍歷當前目錄下所有的jpg文件,並按照文件夾名稱合併成pdf文檔
python 3.4.4
圖片文件用數字按順序命名
'''
def conpdf():
#獲取橫向A4大小
(w, h) = landscape(A4)
#遍歷當前目錄
for root,dirs,files in os.walk(os.getcwd()):
#根據根目錄名創建一個pdf
c = canvas.Canvas(os.path.basename(root)+".pdf", pagesize = landscape(A4))
#print(os.path.basename(root)+".pdf")
#用於存放jpg文件
jpg_list=[]
#從文件列表中取出jpg文件放入到list中
for p in files:
#將jpg文件名存入列表
if p[-4:] =='.jpg':
#jpg_list.append(root + "\\" +p)
jpg_list.append(p)
#對文件名稱排序
jpg_list.sort(key=lambda x :int(x[:-4]))
#print(jpg_list)
for f in jpg_list:
#按順序把圖片畫到畫布上
c.drawImage(root + "\\"+f, 0, 0, w, h)
#結束當前頁並新建頁
c.showPage()
c.save()
print ("ok.")
conpdf()