图片批量制作成pdf

难点主要有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之后循环分页插入图片。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值