在日常生活中,经常会遇到需要提交身份证正反面证明资料的情况,而且这些网站大部分只接受pdf格式,这时候我们就需要把身份证正反面两张图片合成为一个pdf文件。

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

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

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上

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

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 Image
import 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")

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

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

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

3.多张照片合成PDF

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

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

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

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

from PIL import Image
import 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格式相关推荐

  1. 超级安全,Python 合成多张图片到PDF格式

    在日常生活中,经常会遇到需要提交身份证正反面证明资料的情况,而且这些网站大部分只接受pdf格式,这时候我们就需要把身份证正反面两张图片合成为一个pdf文件. 在macOS系统下,预览软件可以轻松做到这 ...

  2. Java 多张图片 转PDF格式

    创建多张图片转PDF工具类 package order.util; import java.io.File; import java.io.FileOutputStream; import java. ...

  3. [python学习] 模仿浏览器下载CSDN源文并实现PDF格式备份

    最近突然想给自己的博客备份下,看了两个软件:一个是CSDN博客导出软件,好像现在不能使用了:一个是豆约翰博客备份专家,感觉都太慢,而且不灵活,想单独下一篇文章就比较费时.而且我的毕业论文是基于Pyth ...

  4. Word处理控件Aspose.Words功能演示:在 Python 中将 TXT 文件转换为 PDF

    各种人使用记事本以TXT格式记下重点或快速创建笔记.此外,TXT 文件用于在各种应用程序中存储纯文本.但是,由于记事本不提供高级功能,因此 TXT 文件通常会转换为PDF.为了以编程方式自动将 TXT ...

  5. 使用python将多张图片转换成pdf

    有朋友在问如何通过Python将多张图片转换成pdf,刚好之前写了一个小功能,分享给大家. 不多说,直接上代码: #!/usr/local/python3.6.5 #cd /usr/local/pyt ...

  6. 在python中将多张图片合成为视频

    网上有很多程序示例描述了如何在python中将多张图片合成为视频,但好像都没有关注一个小问题--被合成的那些图片的尺寸应该一致,并且和程序中给定的参数一致.我遇到的问题就是,如果多张图片的尺寸不一致, ...

  7. 将pdf的base64编码格式转为img的base64编码格式并合成一张图片

    将pdf的base64编码格式转为img的base64编码格式并合成一张图片: public static String base64PdfToJpgBase64(String base64Pdf) ...

  8. python两张图片无缝合成一张_使用python拼接多张图片.二三事

    前几日在博客上看到一篇"使用python拼接多张图片"的Blog[具体是能将的图片名字必须是形如xx_1.png ... xx_100.png或者xx_001.png ... xx ...

  9. python在线学习pdf_扣丁学堂Python在线学习之将pdf转成图片的方法

    扣丁学堂Python在线学习之将pdf转成图片的方法 2018-05-23 11:29:01 1266浏览 Python将pdf转成图片的方法,不论是参加 本篇文章记录如何使用python将pdf文件 ...

最新文章

  1. 逼自己玩命学了3个多月,吃透了Python技术核心!分享给你,让你今年进个大厂!...
  2. iptables相关管理命令
  3. WPF DispatcherTimer(定时器应用) 无人触摸60s自动关闭窗口
  4. 使用 Spring Boot Operator 部署 Spring Boot 到 Kubernetes
  5. python操作js中的输入_Python调用JavaScript代码的方法
  6. 软件架构师的工作职责
  7. Hyper-V群集对群集复制
  8. springMVC 项目在jboss7中配置应用自己的log4j
  9. 分部类和方法的学习以及在LINQ中的应用(原创)
  10. 矩阵、优化理论常用记号
  11. 百度ueditor修改默认字体和大小
  12. 多个DbContext修改同一张表测试
  13. java名字自动生成_Java名字生成器
  14. ubuntu下rabbitvcs安装后无右键菜单解决办法
  15. 企业该如何做好IT规划
  16. python爬虫-京东商品详情爬取
  17. java爬虫入门第二弹——通过URL下载图片(以下载百度logo为例)
  18. android悬浮窗(支持退回桌面后显示)
  19. 2020年全球柿子产业发展概述及产业发展趋势分析[图]
  20. C++ STL求全排列和组合

热门文章

  1. python 中 str.split( ) 函数
  2. 手机关机代码_今天才发现,手机键盘隐藏的实用功能,不会用实在太可惜了
  3. 关于p标签不换行的问题
  4. Vue+Django使用Blob下载文件(xlsx为例)
  5. cmd中运行exe的简单命令
  6. SKEY协议设计实验
  7. BTOS是固定在微型计算机,给音乐来点不一样的味道!试玩飞傲Q1 Mark ⅡBTR1耳放...
  8. linux hiredis 编译安装
  9. 由浅入深玩转华为WLAN—23 Traffic-filter(ACL)在WLAN无线场景的应用
  10. 自变量选择与逐步回归——《应用回归分析R语言版》