写在前面
为什么要要将图像转换为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()
的方法,允许您加载各种位图格式的图像文件,包括PNG
、JPEG
、EMF
、BMP
和GIF
。加载图像后,您可以使用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.0, 0.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