Python轻松实现将图片转换为PDF并合并

 更新时间:2026年04月02日 08:14:00   作者:LSTM97  
在日常办公或文档处理中,我们经常需要将多张图片合并成一个 PDF 文件,本文将介绍如何使用 Python 和 Spire.PDF for 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()

代码解析

  1. 导入库和设置路径 :首先导入 Spire.PDF 和 os 模块,定义图片文件夹路径和输出文件路径。
  2. 创建 PDF 文档 :通过 PdfDocument() 创建空白 PDF 文档,并使用 SetMargins(0) 移除页面边距,确保图片能够完整铺满页面。
  3. 读取图片文件 :使用 os.listdir() 获取文件夹中所有图片文件,通过 endswith() 筛选 JPG 和 JPEG 格式,并用 sorted() 进行排序,保证图片按文件名顺序合并。
  4. 逐张添加图片 :对于每张图片,使用 PdfImage.FromFile() 加载,获取其原始尺寸,然后创建相同尺寸的 PDF 页面,最后通过 DrawImage() 将图片绘制到页面中。
  5. 保存和释放资源 :使用 SaveToFile() 保存 PDF 文件,并调用 Dispose() 释放文档资源。

运行效果

执行上述代码后,程序会自动在 output 文件夹下生成 CombinedImages.pdf 文件。该 PDF 中的每一页对应一张原始图片,页面大小与图片尺寸完全一致,保证了图片的最佳显示效果。

扩展应用

基于上述代码,我们可以轻松扩展更多功能:

  • 支持更多图片格式 :在筛选条件中添加 .png、.bmp 等格式
  • 自定义页面大小 :可以统一设置固定页面尺寸,而非跟随图片尺寸
  • 添加图片压缩 :通过调整图片质量来控制 PDF 文件大小
  • 批量处理 :对多个文件夹分别生成对应的 PDF 文件

总结

使用 Spire.PDF for Python 实现图片转 PDF 功能,代码简洁、易于理解,且无需安装额外依赖。无论是个人用户还是企业级应用,都可以快速集成这一功能。希望本文能帮助你在文档处理工作中提升效率,让图片管理和分享变得更加便捷。

到此这篇关于Python轻松实现将图片转换为PDF并合并的文章就介绍到这了,更多相关Python图片转PDF并合并内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现约瑟夫环问题的方法

    Python实现约瑟夫环问题的方法

    这篇文章主要介绍了Python实现约瑟夫环问题的方法,详细分析了约瑟夫环问题的描述、原理与解决方法,需要的朋友可以参考下
    2016-05-05
  • python调试神器PySnooper的使用

    python调试神器PySnooper的使用

    这篇文章主要介绍了python调试神器PySnooper的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 在Python中使用zlib模块进行数据压缩的教程

    在Python中使用zlib模块进行数据压缩的教程

    这篇文章主要介绍了在Python中使用zlib模块进行数据压缩的教程,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • 浅谈Python的正则表达式

    浅谈Python的正则表达式

    这篇文章主要介绍了浅谈Python的正则表达式,正则表达式本身是独立于编程语言的知识,但是它又依附于编程语言,需要的朋友可以参考下
    2023-04-04
  • python中get和post有什么区别

    python中get和post有什么区别

    在本篇内容里小编给大家分享的是关于python中get和post有什么区别的相关内容,需要的朋友们参考下吧。
    2020-06-06
  • 优化IntelliJ IDEA对Python的提示功能方式

    优化IntelliJ IDEA对Python的提示功能方式

    本文主要介绍了IntelliJ IDEA对Python代码提示不友好、开发效率低的问题,并提供了一系列优化方案,包括正确配置Python解释器、安装Python插件、同步项目索引、检查代码规范、更新IDEA版本等
    2026-05-05
  • python操作mysql中文显示乱码的解决方法

    python操作mysql中文显示乱码的解决方法

    这篇文章主要介绍了python操作mysql中文显示乱码的解决方法,是Python数据库程序设计中经常会遇到的问题,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • python pickle 和 shelve模块的用法

    python pickle 和 shelve模块的用法

    pickle和shelve模块都可以把python对象存储到文件中,下面来看看它们的用法吧
    2013-09-09
  • MacOS Pytorch 机器学习环境搭建方法

    MacOS Pytorch 机器学习环境搭建方法

    这篇文章主要介绍了MacOS Pytorch 机器学习环境搭建,学习 Pytorch ,首先要搭建好环境,这里将采用 Anoconda + Pytorch + PyCharm 来一起构建 Pytorch 学习环境,需要的朋友可以参考下
    2023-02-02
  • 详解使用python crontab设置linux定时任务

    详解使用python crontab设置linux定时任务

    本篇文章主要介绍了使用python crontab设置linux定时任务,具有一定的参考价值,有需要的可以了解一下。
    2016-12-12

最新评论