Python 实现批量合成图片为 PDF 格式

太实用了!Python 合成多张图片到PDF格式!

在macOS系统下,预览软件可以轻松做到这一点,同时打开图片到一个预览窗口下,点击导出PDF就能成功导出。但是Windows系统就没有这么方便的软件可以实现这一点,网上有很多合成PDF的网站,但是这些网站无一例外需要上传PDF进行合成,个人认为非常地不安全。

因此,最安全的方法,还是我们自己写一个Python脚本实现合成功能。

1.准备

请选择以下任一种方式输入命令安装依赖:

1. Windows 环境 打开 Cmd (开始-运行-CMD)。

2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。

3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.

pip install pillow

登录后复制

2.合成原理

Pillow模块,即PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。通过它,我们能很轻松地操作图像,并导出为不同格式。

首先来一个简单的示例,我们将打开一张图片,并将其保存为pdf格式:

from PIL import Imageimport osdef convert_img_pdf(filepath, output_path):"""转换图片为pdf格式Args:filepath (str): 文件路径output_path (str): 输出路径"""output = Image.open(filepath)output.save(output_path, "pdf", save_all=True)if __name__ == "__main__":convert_img_pdf("1.jpeg", "./test.pdf")

登录后复制

随便使用一张图片测试一下:

太实用了!Python 合成多张图片到PDF格式!

在运行代码后,它便成功地转化为了PDF文件:

太实用了!Python 合成多张图片到PDF格式!

几行代码便完成了这个转换,这个可比那些把照片上传到云端的网站安全多了。

3.多张照片合成PDF

有了前面照片转化PDF的基础知识,想要理解下面的多图合成PDF的代码就非常简单了。

其实就是使用了.save的一个特殊参数 append_images:

output.save(pdfFilePath, "pdf", save_all=True, append_images=sources)

登录后复制

通过把图片都存入到一个”sources”数组中,我们就能很轻易地合成这些图像到PDF中。

from PIL import Imageimport osdef combine_imgs_pdf(folder_path, pdf_file_path):"""合成文件夹下的所有图片为pdfArgs:folder_path (str): 源文件夹pdf_file_path (str): 输出路径"""files = os.listdir(folder_path)png_files = []sources = []for file in files:if 'png' in file or 'jpg' in file:png_files.append(folder_path + file)png_files.sort()output = Image.open(png_files[0])png_files.pop(0)for file in png_files:png_file = Image.open(file)if png_file.mode == "RGB":png_file = png_file.convert("RGB")sources.append(png_file)output.save(pdf_file_path, "pdf", save_all=True, append_images=sources)if __name__ == "__main__":folder = r"G:证件"pdfFile = r"G:证件身份证.pdf"combine_imgs_pdf(folder, pdfFile)

登录后复制

这样,只要将你的证件照都放在一个文件夹中,运行这个Python代码,它就能自动将这些证件合成到一个PDF中,并输出到你指定的路径。非常简单方便。

太实用了!Python 合成多张图片到PDF格式!

有需要的小伙伴,照着代码去试一下吧!看百遍,读千遍,不如自己动手敲一遍!

以上就是Python 实现批量合成图片为 PDF 格式的详细内容,更多请关注【创想鸟】其它相关文章!

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2237871.html

(0)
上一篇 2025年2月26日 19:08:57
下一篇 2025年2月26日 19:09:18

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Python如何使用UDP实现客户端和服务器通信

    UDP 客户端 一个使用udp协议的客户端示例代码,用于实现连续对话。请注意,udp是无连接协议,因此在实现连续对话时需要特别小心。 以下是示例代码: import socket# 客户端配置HOST = ‘localhost’PORT =…

    编程技术 2025年2月26日
    000
  • 十行 Python 代码可以实现哪些有趣的功能?

    下面我们来看看,我们用不超过10行代码能实现些什么有趣的功能。 一、生成二维码 二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,而生成一个二维码也非常简单…

    2025年2月26日 编程技术
    200
  • 挑战:用Python实现循环的替代方案

    自从我开始探索 Python 中惊人的语言功能已经有一段时间了。一开始,我给自己一个挑战,目的是让我练习更多的 Python 语言功能,而不是使用其他编程语言的编程经验。这让事情变得越来越有趣!代码变得越来越简洁,代码看起来更加结构化和规范…

    2025年2月26日
    200
  • 分析Python Django源码的运行过程

    Django运行顺序 wsgi会不断监听客户端发送来的请求 先经过中间件进行分析验证处理 然后经过url分发与验证 视图层进行处理 再经过中间件进行分析验证处理 立即学习“Python免费学习笔记(深入)”; 返回响应内容 1.启动 1.1…

    编程技术 2025年2月26日
    200
  • 如何使用Python实现一个简单的Web应用框架?

    写应用框架需要写底层服务器么? 这个要区分2种情况,如果应用框架,你没有参考wsgi标准,那么在写应用框架之前,你就必须要定义一套属于自己的服务器,当然本文不采取这种方式,专业的事情应该专业的人来做。我们将编写符合wsgi标准的框架 ,所以…

    2025年2月26日
    200
  • 如何使用Python绘制分形图案

    一、目标 写一个可以画等边三角形的程序,并且在三角形的每条边上,它必须能够绘制一个稍微小一点的向外的三角形。能够根据人的意愿多次重复此过程,从而创建一些有趣的模式。 二、表示图像 把图像表示为一个二维的像素阵列。像素阵列中的每个单元格将代表…

    2025年2月26日 编程技术
    200
  • Python中的元编程及其应用

    什么是元编程 python元编程是指在运行时对python代码进行操作的技术,它可以动态地生成、修改和执行代码,从而实现一些高级的编程技巧。python的元编程包括元类、装饰器、动态属性和动态导入等技术,这些技术都可以帮助我们更好地理解和掌…

    编程技术 2025年2月26日
    200
  • 如何使用Python的pandas库创建多层次索引(MultiIndex)?

    引言 pd.multiindex,即具有多个层次的索引。通过多层次索引,我们就可以操作整个索引组的数据。本文主要介绍在pandas中创建多层索引的6种方式: pd.MultiIndex.from_arrays():多维数组作为参数,高维指定…

    2025年2月26日 编程技术
    200
  • 如何在Python中自定义和使用函数?

    一. 应用:学员管理系统 1.1 系统简介 需求:进入系统显示系统功能界面,功能如下: 1、添加学员 2、删除学员 3、修改学员信息 4、查询学员信息 5、显示所有学员信息 立即学习“Python免费学习笔记(深入)”; 6、退出系统 系统…

    编程技术 2025年2月26日
    200
  • 使用Python进行泰坦尼克号幸存者的数据分析和预测

    数据获取 当我们成功注册账号后,可以在竞赛链接中找到泰坦尼克沉船存活的竞赛链接,如下图所示: 进入竞赛页面后,可以看到关于竞赛的简单介绍以及其他人的代码等内容,在这里我们点击Data。 注意下面的数据介绍,这里的数据介绍将会帮助我们了解数据…

    2025年2月26日 编程技术
    200

发表回复

登录后才能评论