您好,登錄后才能下訂單哦!
本文實(shí)例講述了Python3將jpg轉(zhuǎn)為pdf文件的方法。分享給大家供大家參考,具體如下:
#coding=utf-8 #!/usr/bin/env python """ convert image to pdf file """ #Author: mrbeann import os import sys import glob import platform from reportlab.lib.pagesizes import letter, A4, landscape from reportlab.platypus import SimpleDocTemplate, Image from reportlab.lib.units import inch from reportlab.pdfgen import canvas from reportlab import rl_settings from PIL import Image import importlib,sys #importlib.reload(sys) #sys.setdefaultencoding("utf-8") def topdf(path,recursion=None,pictureType=None,sizeMode=None,width=None,height=None,fit=None,save=None): """ Parameters ---------- path : string path of the pictures recursion : boolean None or False for no recursion True for recursion to children folder wether to recursion or not pictureType : list type of pictures,for example :jpg,png... sizeMode : int None or 0 for pdf's pagesize is the biggest of all the pictures 1 for pdf's pagesize is the min of all the pictures 2 for pdf's pagesize is the given value of width and height to choose how to determine the size of pdf width : int width of the pdf page height : int height of the pdf page fit : boolean None or False for fit the picture size to pagesize True for keep the size of the pictures wether to keep the picture size or not save : string path to save the pdf """ if platform.system() == 'Windows': path = path.replace('\\','/') if path[-1] != '/': path = (path + '/') if recursion == True: for i in os.listdir(path): if os.path.isdir(os.path.abspath(os.path.join(path, i))): topdf(path+i,recursion,pictureType,sizeMode,width,height,fit,save) filelist = [] if pictureType == None: filelist = glob.glob(os.path.join(path, '*.jpg')) else: for i in pictureType: filelist.extend(glob.glob(os.path.join(path, '*.'+i))) maxw = 0 maxh = 0 if sizeMode == None or sizeMode == 0: for i in filelist: im = Image.open(i) if maxw < im.size[0]: maxw = im.size[0] if maxh < im.size[1]: maxh = im.size[1] elif sizeMode == 1: maxw = 999999 maxh = 999999 for i in filelist: im = Image.open(i) if maxw > im.size[0]: maxw = im.size[0] if maxh > im.size[1]: maxh = im.size[1] else: if width == None or height == None: raise Exception("no width or height provid") maxw = width maxh = height maxsize = (maxw,maxh) if save == None: filename_pdf = path + path.split('/')[-2] else: filename_pdf = save + path.split('/')[-2] filename_pdf = filename_pdf + '.pdf' c = canvas.Canvas(filename_pdf, pagesize=maxsize ) l = len(filelist) for i in range(l): (w, h) =maxsize width, height = letter if fit == True: c.drawImage(filelist[i] , 0,0) else: c.drawImage(filelist[i] , 0,0,maxw,maxh) c.showPage() c.save() def main(): topdf(u'F:/gitplace/jpg2pdf/test',pictureType=['png','jpg'],save='F:/gitplace/jpg2pdf/test/新建文件夾') if __name__ == '__main__': main()
GitHub地址:https://github.com/mrbeann/jpg2pdf
更多Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python文件與目錄操作技巧匯總》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。