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/8/11 10:00:27 阅读更多 →
Claude Code 终端 AI 助手:配置 DeepSeek API 实现高效编程对话

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

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

2026/8/14 5:30:49 阅读更多 →
在centos9系统上配置zerotier实现不同网段互联

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

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

2026/8/15 2:15:39 阅读更多 →

最新新闻

知乎企业号认证与运营全攻略:从申请到内容策略

知乎企业号认证与运营全攻略:从申请到内容策略

1. 从“要不要做”开始:知乎企业号的价值与定位如果你负责公司的市场、品牌或者新媒体运营,最近可能被老板或者同事问过:“我们是不是该搞个知乎企业号?” 或者,你正在主动寻找新的品牌发声渠道。面对“知乎企业认证怎…

2026/8/15 3:20:32 阅读更多 →
MathorCup数学建模竞赛:从组队到实战的全流程指南与核心能力构建

MathorCup数学建模竞赛:从组队到实战的全流程指南与核心能力构建

1. 从旁观到参与:我为什么建议你关注MathorCup 又到了一年一度的高校数学建模竞赛季。如果你是一名理工科或者经管类专业的大学生,最近可能已经在朋友圈、班级群或者学校公告栏里,反复看到“MathorCup”这个名字。它不像“高教社杯”全国大学…

2026/8/15 3:20:32 阅读更多 →
零成本搭建本地AI知识库:Obsidian与Codex类工具联动实践

零成本搭建本地AI知识库:Obsidian与Codex类工具联动实践

这次我们来看一个零成本搭建个人AI知识库的方案,核心是利用Codex(或同类工具ClaudeCode、OpenCode)与Obsidian笔记软件的联动。这个组合最大的吸引力在于,它能让你的本地知识库“活”起来,无需依赖昂贵的云端API&#…

2026/8/15 3:20:32 阅读更多 →
CSS结构伪类选择器:精准定位元素的核心技巧与实战指南

CSS结构伪类选择器:精准定位元素的核心技巧与实战指南

1. 项目概述:从“选择困难”到精准定位在CSS的世界里,我们每天都在和选择器打交道,但真正能让你从“差不多能选中”到“指哪打哪”的,往往是那些结构伪类选择器。last-child、:first-child、:nth-child()、:nth-of-type()这四个家…

2026/8/15 3:20:32 阅读更多 →
Mac上搭建Python 3与Django开发环境:从环境隔离到项目部署全指南

Mac上搭建Python 3与Django开发环境:从环境隔离到项目部署全指南

1. 项目概述:为什么要在Mac上折腾Django?如果你手头有一台Mac,并且想用它来开发一个网站或者Web应用,那么Django几乎是一个绕不开的名字。作为一个在Python社区里摸爬滚打了十多年的老鸟,我几乎见证了Django从一个小众…

2026/8/15 3:20:32 阅读更多 →
基于ComfyUI API与MiniMax-H3构建多模态AI内容生成流水线

基于ComfyUI API与MiniMax-H3构建多模态AI内容生成流水线

最近在尝试将多模态大模型能力集成到自动化内容生成流水线时,发现市面上很多方案要么过于复杂,要么灵活性不足。特别是当需要结合文生视频、音频生成等多种模态时,流程的编排和调试往往成为瓶颈。ComfyUI 以其强大的节点式工作流和开放的 API…

2026/8/15 3:19:32 阅读更多 →

日新闻

内景 空间站内部 中国空间站 太空 内仓

内景 空间站内部 中国空间站 太空 内仓

本项目为前几天收费帮学妹做的一个项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 空间站内部 中国空间站 太空 内仓 地址:本地PC端运行(或Web…

2026/8/15 0:00:30 阅读更多 →
重新定义数据接口:3个突破性场景让通达信数据读取更智能

重新定义数据接口:3个突破性场景让通达信数据读取更智能

重新定义数据接口:3个突破性场景让通达信数据读取更智能 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 当我们面对海量金融数据时,传统的数据获取方式往往让我们陷入困境—…

2026/8/15 0:00:30 阅读更多 →
一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

快消品(FMCG)是流通速度较快、竞争较为激烈的行业之一。一瓶饮料从出厂到消费者手中,往往只有几十天甚至几天的周转窗口。这决定了快消行业的仓储管理系统(WMS)与制造业、电商行业存在明显区别:它不仅需要管…

2026/8/15 0:02:30 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/13 10:41:52 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/14 13:40:53 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/14 14:06:45 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/15 2:35:29 阅读更多 →