Python PDF 生成:使用 Pillow 和 ReportLab 进行图像处理

上一篇文章来了解如何使用 Python 浏览目录结构。 那么,让我们更进一步:使用 Python 可以非常容易地自动完成将多个图像文件转换成一个 PDF 的任务。

在本篇文章中,我们将学习如何创建 Python PDF,为此,我们将使用 枕头报告实验室 如何使用图库处理图像并将其转换为 PDF 文件这对于创建报告或作品集非常有用。本帖将向您传授创建 Python PDF 所需的技能。

Python PDF 생성

枕头库:图像处理基础知识

枕头是在 Python 中处理图像文件最常用的库之一,可以轻松打开图像、调整图像大小、以不同格式保存图像等。在 PDF 创建任务中,它用于检查图像的大小和分辨率,并将其原样转换为 PDF。

安装和使用枕头

使用 pip 可以轻松安装 Pillow。如果使用 VS 代码,可以在终端窗口中运行。我的机器上已经安装了该软件包,所以它显示已经满足安装要求。

pip install Pillow
Python PDF 생성 포스트 터미널 캡쳐 그림

让我们来看一个安装后打开和验证图像的简单示例。

从 PIL 导入图像

img_path = "C:/Users/user/Documents/lease_renewal_process.png"
img = Image.open(img_path)
print(img.size) 打印 # 图像大小

这段代码执行使用 Pillow 打开图像并输出图像大小的基本任务。这些信息在以后生成 PDF 时非常重要。

报告实验室:创建 PDF 的基础知识

报告实验室是一个非常有用的库,可用于在 Python 中创建 PDF。您可以自由添加文本、图像、形状等,甚至可以设置自定义页面大小。将图像转换为 PDF 时,您需要设置一个适合图像大小的页面,然后在页面上插入图像。

安装和使用 ReportLab

也可使用 pip 命令安装 ReportLab。

pip install reportlab

下面我们来看一个安装后创建简单 PDF 文件的例子。

从 reportlab.pdfgen 导入 canvas

pdf_path = "C:/Users/user/Documents/output.pdf"
c = canvas.Canvas(pdf_path)
c.drawString(100, 750, "你好,这是 PDF!")
c.save()

这段代码将创建一个带有 "你好,这是 PDF!"文本的 PDF 文件。您可以在 PDF 页面中添加图像和文本,还可以使用 Python PDF自动。

Python PDF 생성 포스트 pdf 생성결과 캡쳐 그림

从图像转换为 PDF

现在,让我们来看一个结合 Pillow 和 ReportLab 将多个图像文件转换为单一 PDF 的示例,其中涉及导入多个图像文件,为每个尺寸创建一个页面,并将图像文件插入页面。

完整代码示例

导入 os
从 PIL 导入图像
从 reportlab.pdfgen 导入 canvas

def process_images(c, dir_path):
    img_list = sorted([img_name for img_name in os.listdir(dir_path) if img_name.endswith(".png")])
    for img_name in img_list:
        img_path = os.path.join(dir_path, img_name)
        img = Image.open(img_path)
        img_width, img_height = img.size
        c.setPageSize((img_width, img_height)) # 设置页面大小以适应图像大小
        c.drawInlineImage(img_path, 0, 0, width=img_width, height=img_height) # 插入图像
        c.showPage()

def create_pdf_from_images(main_dir, output_pdf):
    c = canvas.Canvas(output_pdf)
    process_images(c, main_dir)
    c.save()
    print(f "PDF 文件创建:{output_pdf}")

main_dir = "C:/Users/user/Documents/images" # 存储图像的文件夹(根据环境进行调整)
output_pdf = "C:/Users/user/Documents/output.pdf" # 输出 PDF 的路径(根据环境调整)
create_pdf_from_images(main_dir, output_pdf)

代码说明

  1. 图像处理函数注:此功能从指定目录导入 PNG 文件,处理图像,并为每个图像大小的 PDF 添加页面。
  2. 从图像创建 PDF 函数说明:此函数创建一个画布对象,处理图像文件,并将其保存为 PDF 文件。
  3. 使用枕头进行图像处理关键是要检查每张图片的大小,确保 PDF 页面的大小适合图片。
  4. 使用 ReportLab 生成 PDF通过 Canvas 对象将每个图像文件逐页转换为 PDF,最后保存为 PDF 文件。

从图像转换为 PDF 时的注意事项

使用 Python 生成 PDF 有一些注意事项。首先,您应该事先检查图像的分辨率和大小;如果页面尺寸设置得太小,图像可能无法正常输出。 您还应该明确指定要转换的图像文件格式,因为不同的图像扩展名可能需要不同的处理方式。

结论:Python 生成 PDF 的实用性

在本帖中,我们将使用 Python PDF 了解创作、 枕头报告实验室通过这种技术,您可以在单个 PDF 中记录多个图像文件,这对于创建报告或作品集非常有用。 Python PDF如果您想自动完成创建任务,请按照本帖中的步骤操作!

类似文章