python处理批量有序png图片生成pdf文件
在我上一篇的需求中有编写程序截取屏幕指定区域批量生成有序png图像的需求为了便于阅读最终需求是将所有有序序列的图像按照顺序合成为一个pdf文件最好能够顺便压缩一下清晰图。本篇应用接上一篇的功能扩展主要需求是从当前目录下找出所有 PNG 格式的序列图片并将它们合并生成一个 PDF 文件。从个人需求出发本应用还是非常实用的比如整理截图、图片序列等场景。毕竟商用软件能实现这个功能的软件也不少使用起来有利有弊而使用该程序既能跨平台用还灵活方便。以下是相应软件的简单对比整理。本篇内容主要解决以下4点需求遍历当前目录筛选出所有.png后缀的文件按文件名数字序列对 PNG 文件进行排序保证生成 PDF 的顺序正确使用成熟的 Python 库PIL/Pillow处理图片使用Pillow的 PDF 导出功能生成最终 PDF加入异常处理确保程序健壮性。完整代码首先需要安装依赖库pip install pillow以下是可直接运行的代码import os from PIL import Image from pathlib import Path def pngs_to_pdf(output_pdf_nameoutput.pdf, sort_by_nameTrue): 将当前目录下的所有PNG图片合并为一个PDF文件 Args: output_pdf_name (str): 生成的PDF文件名默认output.pdf sort_by_name (bool): 是否按文件名排序保证序列图片顺序默认True # 获取当前目录路径 current_dir Path.cwd() # 筛选当前目录下所有PNG文件 png_files [] for file in current_dir.iterdir(): # 只处理文件且后缀为.png忽略大小写 if file.is_file() and file.suffix.lower() .png: png_files.append(file) # 检查是否找到PNG文件 if not png_files: print(❌ 当前目录下未找到任何PNG图片文件) return # 按文件名排序保证序列图片顺序如1.png、2.png、3.png if sort_by_name: # 提取文件名不含后缀尝试转为数字排序失败则按字符串排序 def sort_key(file_path): try: # 提取文件名无后缀并转为数字 return int(file_path.stem) except ValueError: # 非数字文件名按字符串排序 return file_path.name png_files.sort(keysort_key) print(f✅ 找到 {len(png_files)} 个PNG文件开始生成PDF...) print(f 文件列表{[f.name for f in png_files]}) try: # 打开第一张图片作为PDF的基础 first_image Image.open(png_files[0]) # 转换为RGB模式PNG可能带透明通道PDF不支持需转换 if first_image.mode in (RGBA, P): first_image first_image.convert(RGB) # 准备其他图片 other_images [] for png_file in png_files[1:]: img Image.open(png_file) if img.mode in (RGBA, P): img img.convert(RGB) other_images.append(img) # 保存为PDF first_image.save( output_pdf_name, save_allTrue, append_imagesother_images, resolution100.0, # PDF分辨率 quality95 # 图片质量 ) print(f PDF生成成功文件保存为{os.path.abspath(output_pdf_name)}) except Exception as e: print(f❌ 生成PDF失败{str(e)}) if __name__ __main__: # 调用函数可自定义输出PDF名称 pngs_to_pdf(output_pdf_namepng_sequence.pdf)代码关键部分解释文件筛选使用Path.cwd()获取当前目录iterdir()遍历所有文件通过suffix.lower() .png筛选 PNG 文件忽略大小写如.PNG 也能识别文件排序自定义sort_key函数优先将文件名转为数字排序适配 1.png、2.png 这类序列非数字文件名按字符串排序图片处理PNG 图片可能包含透明通道RGBA 模式PDF 不支持透明通道因此转换为 RGB 模式PDF 生成使用PIL.Image.save()的save_allTrue和append_images参数将多张图片合并为一个 PDF异常处理捕获生成过程中的错误友好提示用户。使用说明将代码保存为png2pdf.py放在包含 PNG 序列图片的目录下打开终端 / 命令行进入该目录执行python png2pdf.py程序会自动找到所有 PNG 文件按顺序生成名为png_sequence.pdf的文件若想自定义输出 PDF 名称可修改pngs_to_pdf(output_pdf_name自定义名称.pdf)。测试示例假设当前目录有文件xxx_001.png、xxx_003.png、xxx_002.png、test.png运行程序后输出✅ 找到 4 个PNG文件开始生成PDF...生成的 PDF 中图片顺序为xxx_001.png → xxx_002.png → xxx_003.png → test.png最终在当前目录生成png_sequence.pdf。总结核心依赖是Pillow库需提前安装程序仅处理当前目录下的 PNG 文件自动处理 PNG 透明通道问题保证 PDF 生成成功率支持数字序列文件名排序适配常见的图片序列场景包含完善的错误提示新手也能快速定位问题生成pdf与所有原png对比压缩率较高看对比所有png图容量为754M合成pdf后pdf文件为102M压缩率较高

相关新闻

WordPress外贸B2B独立站搭建全流程:从环境部署到询盘优化

WordPress外贸B2B独立站搭建全流程:从环境部署到询盘优化

很多外贸企业在数字化转型过程中面临一个关键选择:如何快速搭建一个专业、稳定且能持续获取海外询盘的B2B独立站。传统SAAS建站虽然上手快,但长期受限于功能定制性和数据自主权。本文将手把手带你从零开始,用WordPress搭建一个完整的外贸B2B询…

2026/7/25 20:50:52阅读更多 →
Claude Code 终端 AI 助手:配置 DeepSeek API 实现高效编程对话

Claude Code 终端 AI 助手:配置 DeepSeek API 实现高效编程对话

如果你已经习惯了在 IDE 里用 Copilot 或者 Cursor 的“Cmd+K”来写代码,那么今天这个工具可能会让你换一种思路: 把 AI 编程助手从编辑器里“请”出来,放到一个独立的、专注的终端窗口里。 我说的就是 Claude Code。它不是一个插件,而是一个运行在终端里的独立应用。你…

2026/7/25 20:50:52阅读更多 →
在centos9系统上配置zerotier实现不同网段互联

在centos9系统上配置zerotier实现不同网段互联

分享一个案例,适用于单位之间或者,单位与家庭,也或者家庭与家庭之间异地组网。从多年来的使用经历来看,使用zerotier组网网速快,延迟小,使用方便可靠。 为什么在centos9系统上配置,原因是之前使…

2026/7/25 20:50:52阅读更多 →
WSL2技术解析:Windows与Linux深度整合开发指南

WSL2技术解析:Windows与Linux深度整合开发指南

1. 项目概述:当Windows遇上Linux的奇妙化学反应第一次听说"WindowsLinux"这个名词时,我的程序员直觉就告诉我:这绝对不是简单的虚拟机或者双系统。经过实际测试后发现,这确实是一个令人眼前一亮的解决方案——它让Windo…

2026/7/25 23:17:22阅读更多 →
Nota常见问题解答:新手入门必知的15个关键问题

Nota常见问题解答:新手入门必知的15个关键问题

Nota常见问题解答:新手入门必知的15个关键问题 【免费下载链接】nota A document language for the browser 项目地址: https://gitcode.com/gh_mirrors/no/nota Nota作为一款面向浏览器的文档语言,为用户提供了全新的文档创作体验。本文整理了新…

2026/7/25 23:17:22阅读更多 →
BQ35100电量计芯片在锂原电池监测中的低功耗设计与I2C通信实战

BQ35100电量计芯片在锂原电池监测中的低功耗设计与I2C通信实战

1. 项目概述与核心价值在嵌入式系统,尤其是那些依赖一次性锂原电池供电的物联网节点、智能水表、烟雾报警器或便携式医疗设备中,电源管理是决定产品成败的关键。一个核心痛点在于:你如何知道电池还能用多久?简单测量电压行吗&…

2026/7/25 23:17:22阅读更多 →
AI Agent技能体系构建与性能优化实践

AI Agent技能体系构建与性能优化实践

1. 项目概述:AI Agent Skills体系的行业现状与痛点 在AI技术快速迭代的当下,AI Agent的能力边界正在从单一任务处理向复杂场景决策演进。Skills体系作为AI Agent的核心竞争力载体,其构建质量直接决定了Agent在真实业务场景中的表现水平。当前…

2026/7/25 23:17:22阅读更多 →
HuLa-Server核心功能详解:单聊、群聊与实时消息推送实现指南

HuLa-Server核心功能详解:单聊、群聊与实时消息推送实现指南

HuLa-Server核心功能详解:单聊、群聊与实时消息推送实现指南 【免费下载链接】HuLa-Server ☕️ HuLa Server, a high-performance instant messaging service built on Spring AI, SpringCloud Alibaba, SpringBoot3, Netty, MyBatis-Plus and RocketMQ(HuLa 服务端…

2026/7/25 23:17:22阅读更多 →
Unity游戏内嵌网页开发指南:UniWebView 4.2.0实战与避坑

Unity游戏内嵌网页开发指南:UniWebView 4.2.0实战与避坑

1. 项目概述:为什么Unity游戏需要内嵌网页?做Unity开发久了,总会遇到一些需求,让你觉得“这事儿用原生UI做太费劲了”。比如,游戏里要展示一个实时更新的公告板、一个活动页面,或者干脆嵌入一个第三方的支付…

2026/7/25 23:15:22阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/25 1:01:14阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 1:01:14阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/25 1:01:14阅读更多 →
突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:01:16阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:01:16阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:01:16阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/25 23:03:25阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/25 19:03:04阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/25 19:03:04阅读更多 →