Python自动化办公之图片转PDF的实现

yizhihongxing

下面我会详细讲解如何实现“Python自动化办公之图片转PDF”的功能。

1. 安装必要的Python库

在使用Python进行图片转PDF操作前,需要预先安装Pillow和reportlab两个库,可以使用pip命令进行安装。

pip install Pillow reportlab

2. 编写Python代码

  • 导入必要的Python库
from PIL import Image
from reportlab.lib.pagesizes import A4, landscape
from reportlab.pdfgen import canvas
import os
  • 定义图片转PDF函数
def img2pdf(img_path, pdf_path):
    """
    将指定路径的图片转成PDF文件
    :param img_path: 图片的路径
    :param pdf_path: 要保存的PDF文件的路径
    """
    # 创建空白PDF文件
    c = canvas.Canvas(pdf_path, pagesize=landscape(A4))

    # 打开指定路径的图片
    img = Image.open(img_path)

    # 计算以宽度为基准缩放的比例,并得出缩放后的高度
    width, height = img.size
    if width > A4[1]:
        scale = A4[1] / width
        img.thumbnail((width * scale, height * scale))
        width, height = img.size

    # 将图像绘制在PDF页面上
    c.drawImage(img_path, (A4[1] - height) / 2, (A4[0] - width) / 2, width, height)

    # 保存PDF文件
    c.save()

其中:

  • 使用Pillow库的Image.open函数打开指定路径的图片。
  • 使用reportlab库的Canvas类创建一个新的PDF文件。
  • 使用reportlab库的Canvas.drawImage函数将图片绘制在PDF页面上。
  • 使用Canvas.save函数保存PDF文件。

  • 使用示例1:图片转PDF

if __name__ == '__main__':
    # 图片路径
    img_path = 'test.jpg'

    # PDF路径
    pdf_path = 'test.pdf'

    # 将图片转成PDF文件
    img2pdf(img_path, pdf_path)

    # 输出信息
    print(f'{img_path} -> {pdf_path} 转换成功!')
  • 使用示例2:批量图片批量转成PDF
if __name__ == '__main__':
    # 图片文件夹路径
    img_dir = r'C:\Users\XXX\Desktop\imgs'

    # PDF文件夹路径
    pdf_dir = r'C:\Users\XXX\Desktop\pdfs'

    # 如果PDF文件夹不存在,则创建
    if not os.path.exists(pdf_dir):
        os.mkdir(pdf_dir)

    # 遍历图片文件夹中所有的图片
    for img_file in os.listdir(img_dir):
        # 如果不是图片文件则跳过
        if not img_file.endswith(('.png', '.jpg')):
            continue

        # 构造图片文件路径和PDF文件路径
        img_path = os.path.join(img_dir, img_file)
        pdf_path = os.path.join(pdf_dir, img_file.split('.')[0] + '.pdf')

        # 将图片转成PDF文件
        img2pdf(img_path, pdf_path)

        # 输出信息
        print(f'{img_path} -> {pdf_path} 转换成功!')

其中:

  • 使用os模块的listdir函数遍历指定文件夹中所有的文件。
  • 使用isdir函数判断文件是否是目录。
  • 使用endswith函数判断文件名是否以指定的后缀名结尾。
  • 使用join函数拼接文件路径。
  • 使用split函数和os.path.splitext函数获取文件名和文件扩展名。
  • 使用了os.mkdir函数创建PDF文件夹。
  • 在每次转换完成后输出转换结果。

3. 运行Python代码

在编写好Python代码后,可以使用Python解释器来执行代码。可以在终端或命令行中执行Python脚本文件,也可以使用集成开发环境(如PyCharm)编辑和运行Python代码。

python img2pdf.py

注意:需要替换文件名和路径为自己的文件名和路径。

以上就是“Python自动化办公之图片转PDF”的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python自动化办公之图片转PDF的实现 - Python技术站

(0)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关文章

  • 详解python实现多张多格式图片转PDF并打包成exe

    标题 首先我们需要给这篇攻略添加一个标题,以便读者能够清楚知道我们要介绍的内容: 详解python实现多张多格式图片转PDF并打包成exe攻略 简介 在正式开始介绍实现方法之前,我们需要先简单介绍一下这个攻略的目的和优点: 这篇攻略主要介绍如何使用Python将多张多格式的图片文件转换成PDF文件,并将其打包成exe文件,方便在其他电脑上使用。Python作…

    python 2023年6月5日
    00
  • 基于Python实现自动抠图小程序

    基于Python实现自动抠图小程序攻略 介绍 自动抠图是一项目前比较热门的技术,在很多领域都有广泛的应用,比如图像处理、视频剪辑、人工智能等。本文将介绍一种使用Python实现自动抠图的小程序。 技术实现 可选工具 PyTorch:一个针对深度学习任务的开源机器学习库。 OpenCV:一个跨平台的计算机视觉库。 Pillow:Python平台下的开源图像处理…

    python 2023年5月19日
    00
  • Python中figure与axies绘图有哪些不同

    在Python中进行数据可视化的时候,matplotlib是最常用的绘图库之一。绘制图形的时候,通常需要使用figure和axies两个对象。这两个对象的区别是: Figure是一个顶层容器,一个画布,就是我们看到的一个整体框架 Axes是Figure中的子容器,图表绘制的地方 因为Figure中可以包含多个Axes,所以我们可以在同一个figure对象中绘…

    python 2023年5月18日
    00
  • python中os库的函数使用

    当谈及操作系统相关的功能时,Python的标准库中提供了一个OS模块,它允许开发人员访问大量底层功能,比如目录结构、文件I/O、进程管理、环境变量以及删除、重命名等操作。 本篇攻略将会提供一个Python中OS库函数的完整指南,包含OS库的基础功能、目录操作、文件I/O和进程管理。 基础OS库函数 一个Python程序中操作系统部分的主要模块是OS库。可以直…

    python 2023年6月2日
    00
  • Python sklearn KFold 生成交叉验证数据集的方法

    Python中的机器学习库scikit-learn(sklearn)提供了KFold方法来生成交叉验证数据集,通过交叉验证评估模型预测性能。KFold方法将数据集划分为K个互斥子集,每次取其中一个子集作为验证集,其余K-1个子集作为训练集,循环K次验证模型。 下面是使用Python中的sklearn库进行KFold交叉验证数据集生成的步骤及示例说明: 步骤1…

    python 2023年6月3日
    00
  • Python读取HTML中的canvas并且以图片形式存入Word文档

    在Python中,我们可以使用各种库和框架来读取HTML中的canvas并将其以图片形式存入Word文档。以下是Python读取HTML中的canvas并且以图片形式存入Word文档的完整攻略,包含两个示例。 示例1:使用selenium和Pillow库读取HTML中的canvas并以图片形式存入Word文档 以下是一个示例,可以使用selenium和Pil…

    python 2023年5月15日
    00
  • 基于Python手写拼音识别

    基于Python手写拼音识别 简介 手写拼音识别是一种将手写的汉字转化为对应的拼音的技术。它广泛应用于中文输入法中,用来提供用户输入的汉字的拼音。Python可以通过使用神经网络模型实现手写拼音识别。 准备工作 首先需要安装Python,建议使用3.x版本,同时需要安装相关的Python库,例如: numpy:用于进行数学计算 pandas:用于数据处理 m…

    python 2023年6月6日
    00
  • 机器学习10大经典算法详解

    下面是详细讲解“机器学习10大经典算法详解”的完整攻略,包含两个示例说明。 机器学习10大经典算法简介 机器学习10大经典算法是指在机器学习领域中应用最广泛的10种算法。这些算法包括决策树、随机森林、支持向量机、朴素贝叶斯、K近邻、线性回归、逻辑回归、神经网络、聚类和降维。这些算法在不同的场景下都有广泛的应用。 决策树算法 决策树算法是一种基于树结构的分类算…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部