Python轻松实现将图片转换为PDF并合并
在日常办公或文档处理中,我们经常需要将多张图片合并成一个 PDF 文件。无论是扫描件整理、电子书制作,还是资料归档,将图片转换为 PDF 都是一项非常实用的需求。本文将介绍如何使用 Python 和 Spire.PDF for Python 库,轻松实现图片到 PDF 的转换与合并功能。
为什么选择 Spire.PDF for Python?
Spire.PDF for Python 是一个功能强大的 PDF 操作库,它不仅支持创建、读取和编辑 PDF 文档,还提供了丰富的图像处理功能。相比于其他库,Spire.PDF 的 API 设计简洁直观,能够轻松完成图片到 PDF 的转换,并允许我们精确控制页面尺寸和图片布局。
完整代码实现
以下代码展示了如何将指定文件夹中的所有 JPG/JPEG 图片合并为一个 PDF 文件:
from spire.pdf import *
import os
# 包含图片的文件夹路径
image_folder = r"C:\Users\Administrator\Desktop\Images"
# 输出 PDF 文件路径
output_file = "output/CombinedImages.pdf"
# 确保输出目录存在
os.makedirs(os.path.dirname(output_file), exist_ok=True)
# 创建 PDF 文档对象
doc = PdfDocument()
# 移除页面边距,让图片铺满整页
doc.PageSettings.SetMargins(0.0)
# 获取所有 JPG/JPEG 文件并排序
image_files = sorted([
f for f in os.listdir(image_folder)
if f.lower().endswith((".jpg", ".jpeg"))
])
# 将每张图片添加到 PDF 中
for image_name in image_files:
image_path = os.path.join(image_folder, image_name)
# 加载图片
image = PdfImage.FromFile(image_path)
# 获取图片尺寸
width = image.PhysicalDimension.Width
height = image.PhysicalDimension.Height
# 创建与图片尺寸相同的页面
page = doc.Pages.Add(SizeF(width, height))
# 在页面上绘制图片
page.Canvas.DrawImage(image, 0.0, 0.0, width, height)
# 保存合并后的 PDF 文件
doc.SaveToFile(output_file)
doc.Dispose()
代码解析
- 导入库和设置路径 :首先导入 Spire.PDF 和 os 模块,定义图片文件夹路径和输出文件路径。
- 创建 PDF 文档 :通过
PdfDocument()创建空白 PDF 文档,并使用SetMargins(0)移除页面边距,确保图片能够完整铺满页面。 - 读取图片文件 :使用
os.listdir()获取文件夹中所有图片文件,通过endswith()筛选 JPG 和 JPEG 格式,并用sorted()进行排序,保证图片按文件名顺序合并。 - 逐张添加图片 :对于每张图片,使用
PdfImage.FromFile()加载,获取其原始尺寸,然后创建相同尺寸的 PDF 页面,最后通过DrawImage()将图片绘制到页面中。 - 保存和释放资源 :使用
SaveToFile()保存 PDF 文件,并调用Dispose()释放文档资源。
运行效果
执行上述代码后,程序会自动在 output 文件夹下生成 CombinedImages.pdf 文件。该 PDF 中的每一页对应一张原始图片,页面大小与图片尺寸完全一致,保证了图片的最佳显示效果。

扩展应用
基于上述代码,我们可以轻松扩展更多功能:
- 支持更多图片格式 :在筛选条件中添加
.png、.bmp等格式 - 自定义页面大小 :可以统一设置固定页面尺寸,而非跟随图片尺寸
- 添加图片压缩 :通过调整图片质量来控制 PDF 文件大小
- 批量处理 :对多个文件夹分别生成对应的 PDF 文件
总结
使用 Spire.PDF for Python 实现图片转 PDF 功能,代码简洁、易于理解,且无需安装额外依赖。无论是个人用户还是企业级应用,都可以快速集成这一功能。希望本文能帮助你在文档处理工作中提升效率,让图片管理和分享变得更加便捷。
到此这篇关于Python轻松实现将图片转换为PDF并合并的文章就介绍到这了,更多相关Python图片转PDF并合并内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
django模型类中,null=True,blank=True用法说明
这篇文章主要介绍了django模型类中,null=True,blank=True用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-07-07
Python新手入门之单引号、双引号与三引号的差异与应用示例
在Python当中表达字符串既可以使用单引号,也可以使用双引号,那两者有什么区别吗?下面这篇文章主要给大家介绍了关于Python新手入门之单引号、双引号与三引号的差异与应用示例,需要的朋友可以参考下2024-03-03
解决python3中自定义wsgi函数,make_server函数报错的问题
下面小编就为大家分享一篇解决python3中自定义wsgi函数,make_server函数报错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2017-11-11
解决Python中pandas读取*.csv文件出现编码问题
很多朋友在使用Python中pandas读取csv文件时,出现编码格式问题,接下来通过本文给大家分享解决Python中pandas读取*.csv文件出现编码问题,需要的朋友可以参考下2019-07-07
PyCharm利用pydevd-pycharm实现Python远程调试的详细过程
这篇文章主要介绍了PyCharm利用pydevd-pycharm实现Python远程调试,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-09-09


最新评论