python3 pdf转图片_Python3将jpg转为pdf文件的方法示例

本文实例讲述了Python3将jpg转为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相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

本文标题: Python3将jpg转为pdf文件的方法示例

本文地址: http://www.cppcns.com/jiaoben/python/292685.html

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页