Python3將jpg轉(zhuǎn)為pdf文件的方法示例
本文實(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)容感興趣的讀者可查看本站專題:《Python文件與目錄操作技巧匯總》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- 20行Python代碼實(shí)現(xiàn)一款永久免費(fèi)PDF編輯工具的實(shí)現(xiàn)
- 拿來(lái)就用!Python批量合并PDF的示例代碼
- Python把圖片轉(zhuǎn)化為pdf代碼實(shí)例
- 利用python下載scihub成文獻(xiàn)為PDF操作
- python實(shí)現(xiàn)PDF中表格轉(zhuǎn)化為Excel的方法
- 基于Python快速處理PDF表格數(shù)據(jù)
- python連接打印機(jī)實(shí)現(xiàn)打印文檔、圖片、pdf文件等功能
- Python 實(shí)現(xiàn)加密過(guò)的PDF文件轉(zhuǎn)WORD格式
- Python PyPDF2模塊安裝使用解析
- python 如何將office文件轉(zhuǎn)換為PDF
相關(guān)文章
Python?OpenCV實(shí)現(xiàn)圖像形狀檢測(cè)
圖像形狀檢測(cè)是計(jì)算機(jī)視覺(jué)領(lǐng)域中的一項(xiàng)關(guān)鍵技術(shù),廣泛應(yīng)用于工業(yè)自動(dòng)化、機(jī)器人視覺(jué)、醫(yī)學(xué)圖像處理等多個(gè)領(lǐng)域,本文將介紹如何使用Python?OpenCV實(shí)現(xiàn)圖像形狀檢測(cè),需要的可以參考下2024-11-11
Python matplotlib實(shí)時(shí)畫圖案例
這篇文章主要介紹了Python matplotlib實(shí)時(shí)畫圖案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
利用Python解決Excel問(wèn)題的最佳方案總結(jié)
python處理excel文件有很多方法,最開(kāi)始接觸的是xlrd、xlsxwriter模塊,分別用于excel文件的讀、寫,后來(lái)又學(xué)習(xí)了openpyxl模塊,可以同時(shí)完成excel文件的讀、寫,下面這篇文章主要給大家介紹了關(guān)于利用Python解決Excel問(wèn)題的最佳方案,需要的朋友可以參考下2023-04-04
python對(duì)列進(jìn)行平移變換的方法(shift)
今天小編就為大家分享一篇python對(duì)列進(jìn)行平移變換的方法(shift),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
Python基于execjs運(yùn)行js過(guò)程解析
這篇文章主要介紹了Python基于execjs運(yùn)行js過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
Python web開(kāi)發(fā)之用Tornado框架制作簡(jiǎn)易表白墻網(wǎng)站
這篇文章將用Python做Web開(kāi)發(fā)。在Python當(dāng)中,WEB開(kāi)發(fā)框架主要有三個(gè),本文將利用Tornado框架做一個(gè)簡(jiǎn)單的表白墻網(wǎng)站,感興趣的可以了解一下2022-02-02

