python如何将图片批量转为PDF

写在前面

为什么要要将图像转换为PDF?将图像转换为PDF具有几个优点,例如保留图像质量、确保跨平台兼容性等。PDF 文件可以保持原始图像分辨率和格式,非常适合存档、打印和共享。

在这篇文章中,我将介绍如何使用 Python 将图像转换并合并为PDF文档,这里会涵盖主流的图像格式,包括PNG、JPEG和GIF。

我们要使用的 Python 库

本文介绍的解决方案依赖于Spire.PDF库,这是一个专为在 Python 应用程序中创建、读取和操作 PDF 文档而设计的库。

该库为程序员提供了简单直观的 API,以生成具有自定义页面设置(如页面大小和边距)的 PDF 文档。创建文档后,用户可以在给定页面上的任何位置放置(绘制)图像。这个特性使得将单独的图像或一系列图像转换为PDF文档变得容易。

安装 Spire.PDF

要从安装最新版本的库,只需在终端运行以下pip命令:

pip install Spire.PDF

代码实现

Spire.PDF提供了一个名为PdfImage.FromFile()的方法,允许您加载各种位图格式的图像文件,包括PNGJPEGEMFBMPGIF。加载图像后,您可以使用PdfPageBase.Canvas.DrawImage()方法将图像绘制到特定坐标的页面上。这样就可以将图像保存到 PDF 文档中。

代码示例

from spire.pdf.common import *
from spire.pdf import *

document = PdfDocument()

# 页面边距设置为0
document.PageSettings.SetMargins(0.0)

# 加载一个具有PNG、JPG、BMP、EMF或GIF扩展名的图像文件
image = PdfImage.FromFile("./input/img.jpg")
    
# 宽度和高度
width = image.PhysicalDimension.Width
height = image.PhysicalDimension.Height

# 添加一个与图像大小相同的页面
page = document.Pages.Add(SizeF(width, height))

# 在页面的(0, 0)位置绘制图像
page.Canvas.DrawImage(image, 0.00.0, width, height)
      
# 保存到文件
document.SaveToFile("output/pdf_result.pdf")

# 释放资源
document.Dispose()

下面是遍历文件夹中所有图片文件的代码示例:

import os

def traverse_image_files(folder_path):
    image_extensions = [".jpg"".jpeg"".png"".gif"".bmp"]  # 支持的图片文件扩展名

    image_files = []  # 存储图片文件的列表

    for root, dirs, files in os.walk(folder_path):
        for file in files:
            file_extension = os.path.splitext(file)[1].lower()  # 获取文件扩展名并转换为小写

            if file_extension in image_extensions:
                image_file_path = os.path.join(root, file)
                image_files.append(image_file_path)

    return image_files

我们可以将第一段代码封装成一个函数,其中,使用图像文件路径作为输入输入(如:convert_to_pdf(img_path))。再结合第二段代码的路径输出,就可以实现图像文件的批量格式转换。

写在最后

是不是特别简单,当然了Spire.PDF还支持更多的图片格式和操作,更多的内容你可以查询官方文档进行学习。


原文始发于微信公众号(harvey的网络日志):python如何将图片批量转为PDF

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/275062.html

(0)
青莲明月的头像青莲明月

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!