zoukankan      html  css  js  c++  java
  • python实现图片转PDF

    import os
    
    from PIL import Image
    from reportlab.pdfgen import canvas
    
    
    def image_resize(img, width, height):
        """
        图片缩放
        :param img: 图片路径
        :param  宽
        :param height: 高
        :return: 宽高
        """
        image = Image.open(img)
        image.resize((width, height), Image.ANTIALIAS).save(img, quality=95, dpi=(72, 72))
        return width, height
    
    
    def image_to_pdf(img, pdf_path=None, resize=True):
        """
        图片转PDF
        :param img: 图片路径
        :param pdf_path: 生成的PDF路径
        :param resize: 是否缩放图片至A4大小
        :return: None
        """
        pix_x, pix_y = 595, 842  # 分辨率为72像素时的A4纸大小
        if not pdf_path:
            pdf_path = f'{os.path.splitext(img)[0]}.pdf'
        w, h = Image.open(img).size
        if resize:
            w, h = image_resize(img, pix_x, pix_y)
            width = (pix_x - w) // 2
            height = (pix_y - h) // 2
            user = canvas.Canvas(pdf_path)
            if width > 1 and height > 1:  # 图片size是否小于最小值
                user.drawImage(img, width, height)  # PDF中居中显示
            else:
                user.drawImage(img, 0, 0)
        else:
            user = canvas.Canvas(pdf_path, pagesize=(w, h))
            user.drawImage(img, 0, 0)
        user.showPage()
        user.save()
    
    博主箴言:该博文中的文字内容仅供参考学习,如有不当之处还望各位不吝赐教,为博主指点一二,不胜感激:▄︻┻┳═一…… ☆(>○<)
  • 相关阅读:
    跟光磊学Python开发-面向对象入门
    插件调用下推操作
    K3Wise老单获取单据行数
    git 添加和删除 global 的 remote.origin.url
    CSV转Excel格式
    java 下载文件
    windows下安装redis并设置自启动
    linxu jdk安装
    Linux安装部署Redis
    CentOS上安装MySQL(使用国内源)
  • 原文地址:https://www.cnblogs.com/rongge95500/p/14959596.html
Copyright © 2011-2022 走看看