难点主要有2个地方,第一个是分页,第二个是读取时,并不是按照1,2,3顺序读取的图片。
#引入所需要的基本包
from reportlab.pdfgen import canvas
#设置绘画开始的位置
def hello(c):
c.drawString(100, 100, "hello world!")
#定义要生成的pdf的名称
c=canvas.Canvas("hello.pdf")
#调用函数进行绘画,并将canvas对象作为参数传递
hello(c)
#showPage函数:保存当前页的canvas
c.showPage()
#save函数:保存文件并关闭canvas
c.save()
reportlab 模块实现生成pdf教程。
import os
import sys
from reportlab.lib.pagesizes import A4, landscape
from reportlab.pdfgen import canvas
import glob
from reportlab.lib.units import inch
import tqdm
def conpdf(path):
#one_path = glob.glob(os.path.join(path, '*.jpg'))
one_path = os.listdir(path)
one_path.sort(key=lambda x: float(x[:-4]), reverse=False)#排序函数
f_pdf = '巴塞尔都市圈.pdf'
(w, h) = landscape(A4)
c = canvas.Canvas(f_pdf)
#c = canvas.Canvas(f_pdf)
for s in tqdm.tqdm(one_path):
f = os.path.join(path,s)
c.drawImage(f, 0,0,h,w)#坐标,宽,高
c.showPage()
print('ok')
c.save()
path = 'D:\\bb1\\'
conpdf(path)
采用sort排序,因为读取为字符所以只取.jpg前的数字,作为float排序,false升序,ture降序。
之后用os.path.join()拼接路径,生成pdf。
分页主要用函数c.showPage()
生成pdf之后循环分页插入图片。
---------------------
作者:o情花o
来源:CSDN
原文:https://blog.csdn.net/WoHongG/article/details/82787959
版权声明:本文为博主原创文章,转载请附上博文链接!
|
|