Python办公自动化:利用Python批量将PDF转换为图片文件
📅 2026/7/13 7:03:06
👁️ 次浏览
前言在日常办公中我们经常遇到这样的场景产品说明书是PDF格式需要提取里面的图片做成素材库论文、简历需要转成图片格式以便预览或上传。手动一个个打开PDF、截图、保存几十个文件下来手都点麻了这时候Python办公自动化就能发挥巨大作用。今天我就带大家用PyMuPDF也就是fitz库写一个批量转换脚本一键将文件夹内所有PDF转为高清PNG图片。而且我会把我在实际踩坑中遇到的新旧版本API不兼容问题全部列出来供大家参考目录一、安装依赖库1.1 完整代码和实现原理1.2路径获取二、 代码逐段精讲2.1 动态获取路径不写死盘符2. 2 控制图片清晰度DPI2.3 自动创建分类文件夹三、⚠️ 重点避坑指南四、 总结一、安装依赖库只需要安装一个库——PyMuPDF它内部包含fitz模块pip install PyMuPDF -i https://pypi.tuna.tsinghua.edu.cn/simple1.1 完整代码和实现原理创建一个Python文件比如pdf_to_image.py将以下代码完整复制进去# -*- coding: utf-8 -*- Python批量将PDF转为图片文件 # 安装所需模块建议安装最新版 # pip install PyMuPDF -i https://pypi.tuna.tsinghua.edu.cn/simple import os import fitz def pyMuPDF_fitz(pdfPath, imagePath): 转换主函数 pdfDoc fitz.open(pdfPath) for pg in range(len(pdfDoc)): # 兼容新旧版 page pdfDoc[pg] rotate int(0) zoom_x 1.33333333 zoom_y 1.33333333 # 新版方法名为 prerotate小写 mat fitz.Matrix(zoom_x, zoom_y).prerotate(rotate) # 新版方法名为 get_pixmap下划线 pix page.get_pixmap(matrixmat, alphaFalse) if not os.path.exists(imagePath): os.makedirs(imagePath) # 生成图片路径 img_path os.path.join(imagePath, images_%s.png % pg) # ---------- 兼容 writePNG 和 save ---------- if hasattr(pix, writePNG): # 旧版 pix.writePNG(img_path) else: # 新版 pix.save(img_path) # save 自动根据扩展名保存为 PNG print(转换成功 imagePath) if __name__ __main__: # 动态获取脚本所在目录 base_dir os.path.dirname(os.path.abspath(__file__)) pdfpath base_dir imgpath base_dir files os.listdir(pdfpath) pptfiles [f for f in files if f.lower().endswith(.pdf)] for pptfile in pptfiles: pdffilepath os.path.join(pdfpath, pptfile) # 为每个 PDF 建立独立子文件夹 minimgpath os.path.join(imgpath, os.path.splitext(pptfile)[0]) try: pyMuPDF_fitz(pdffilepath, minimgpath) except Exception as e: print(f处理文件 {pptfile} 时出错{e})1.2路径获取需要注意的是PDF的存放路径必须是在你文件代码的同一路径下。1.3使用动态路径推荐不必写死绝对路径让脚本自动定位到当前文件所在目录然后拼接子目录或直接使用当前目录。import os import sys # 获取当前脚本所在目录 script_dir os.path.dirname(os.path.abspath(__file__)) # 如果你把PDF放在脚本所在的同一个文件夹 pdfpath script_dir imgpath script_dir # 或新建子目录如 os.path.join(script_dir, output)二、 代码逐段精讲2.1 动态获取路径不写死盘符base_dir os.path.dirname(os.path.abspath(__file__))这行代码会自动获取当前脚本所在的文件夹路径。好处是你把脚本和PDF放在任意目录它都能自动识别完全不需要手动修改代码里的路径。2. 2 控制图片清晰度DPIzoom_x 1.33333333 zoom_y 1.33333333这个缩放系数决定了输出图片的分辨率。1.333倍大约相当于144 DPI默认是 96 DPI既清晰又不会文件太大。如果你需要超高清比如印刷用可以改成2或3。2.3 自动创建分类文件夹minimgpath os.path.join(imgpath, os.path.splitext(pdf_file)[0])os.path.splitext(pdf_file)[0]去掉.pdf后缀得到文件名。每个PDF的图片会保存在以PDF文件名命名的子文件夹里防止图片混在一起。三、⚠️ 重点避坑指南我在写这个脚本时遇到了好几个报错都是PyMuPDF 新旧版本 API 不兼容导致的。下面我把这些坑全部列出来帮你节省大量时间报错信息产生原因解决方案Matrix object has no attribute preRotate旧版方法名是驼峰preRotate新版改为全小写prerotate改为.prerotate(rotate)Page object has no attribute getPixmap旧版方法名getPixmap新版改为下划线get_pixmap改为.get_pixmap()Pixmap object has no attribute writePNG旧版用writePNG()保存图片新版统一为save()用hasattr判断优先用writePNG否则用save特别是第三个坑我在代码中做了全版本兼容处理if hasattr(pix, writePNG): pix.writePNG(img_path) else: pix.save(img_path)这样一来不管读者用的是老项目还是新环境复制代码就能跑完全不用担心版本报错四、 总结通过不到50行Python代码我们实现了一个全自动、全版本兼容的PDF批量转图片工具。它✅ 自动识别当前目录所有PDF✅ 高清输出可自定义DPI✅ 按PDF文件名自动分类保存✅ 兼容PyMuPDF所有版本无需操心报错办公自动化的魅力就在于此——把重复、枯燥的工作交给代码把时间留给更有价值的事情。希望这篇文章对你有帮助如果你在运行过程中遇到任何问题欢迎在评论区留言我会尽力协助。如果觉得有用点个赞和收藏再走吧~
最近在游戏和视频处理领域,AI插帧技术越来越受到关注。很多玩家希望在不升级硬件的情况下提升游戏流畅度,而视频创作者则希望通过补帧技术改善低帧率素材的观感。小黄鸭补帧(Lossless Scaling)作为一款集成了AI插帧功能的实用工具…
📅 2026/7/13 7:03:06
VMware ESXi 7.0 安装后 3 项关键网络与存储配置优化实战当你完成VMware ESXi 7.0的基础安装后,真正的挑战才刚刚开始。本文将深入探讨三个关键领域的优化配置,帮助你将虚拟化环境提升到生产级标准。1. 网络配置检查清单:打造稳定高效的虚拟网…
📅 2026/7/13 7:03:06
1. 项目背景与核心组件选型在无线音频传输领域,Bluetooth 5.4标准带来了革命性的改进,特别是LE Audio的引入彻底改变了传统蓝牙音频的传输方式。本项目采用IDC777-1蓝牙模块与STM32F410RB微控制器的组合方案,实现了高质量、低延迟的无线音频串…
📅 2026/7/13 7:02:06
拿到这块硬盘的时候,
心里其实挺没底的。
毕竟网上关于它的声音,
两极分化有点严重。有人说是神器,
有人说是智商税。
我这种普通人,
只关心到底好不好用。外壳手感确实不错,
摸起来凉凉的。
那种金属质感,
不是那种廉价的塑料感。
拿在手里沉甸甸的,
像是有点分量。但是…
📅 2026/7/13 8:12:49
aops-cobbler高级技巧:如何通过API接口实现自动化运维集成 【免费下载链接】aops-cobbler A cobbler manager service used for one click automatic installation of the operating system. 项目地址: https://gitcode.com/openeuler/aops-cobbler
前往项目…
📅 2026/7/13 8:13:28
1. 项目背景与核心组件选型 在工业自动化和消费电子领域,直流电机控制一直是个经典课题。传统PWM调速方案虽然简单易实现,但存在明显的电磁噪声和机械振动问题,特别是在低速运行时。这次我们要用TB9051FTG驱动芯片搭配PIC18F86K22微控制器&am…
📅 2026/7/13 8:13:28
GNAT Studio 2021社区版Windows安装与GTKAda开发环境配置实战指南为什么选择GNAT Studio进行Ada开发对于需要构建高可靠性系统的开发者而言,Ada语言一直是工业级应用的首选。而GNAT Studio作为AdaCore官方推出的集成开发环境,提供了专为Ada优化的全套工具…
📅 2026/7/13 8:13:28
1. 高电压DC-DC升压转换系统设计概述在工业控制、医疗设备和新能源领域,经常需要将低电压直流电源转换为高电压直流输出。这种需求催生了各种DC-DC升压转换方案,其中基于专用升压控制器IC的方案因其高集成度和可靠性而备受青睐。本文将详细介绍如何使用德…
📅 2026/7/13 8:13:28
LTE/5G网络中的MU-MIMO调度:TM5/TM8/TM9三种传输模式对比与选择在移动通信领域,MU-MIMO(多用户多输入多输出)技术已成为提升网络容量的关键手段。这项技术允许基站同时服务多个用户设备(UE),显著…
📅 2026/7/13 8:13:28
做技术的人都知道,环境配置是最让人头秃的环节。特别是当你面对一个相对小众或者刚起步的项目时,文档可能不全,社区可能冷清。这时候,找到靠谱的来源就显得尤为重要。今天咱们不聊虚的,就聊聊怎么稳妥地完成 openclaw安装官方 流程,顺便分享几个我踩过的坑,希望能帮你省…
📅 2026/7/13 0:01:22
1. 项目概述:当火焰特效成为帧率杀手在UE5项目里,尤其是那些追求电影级视觉的开放世界或者大场景战斗游戏,一个熊熊燃烧的篝火、一次震撼的爆炸,往往是点燃玩家情绪的关键。Niagara作为虚幻引擎5中取代了老旧的Cascade的下一代粒子…
📅 2026/7/13 0:01:52
1. 项目概述与核心价值 最近在对接抖音小游戏平台时,侧边栏复访功能成了一个绕不开的“必答题”。很多开发者朋友,包括我自己一开始,都对这个功能有点摸不着头脑:它到底是什么?为什么平台这么重视?不接入行…
📅 2026/7/13 0:01:52
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/13 5:30:27
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/13 6:21:22
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/13 7:10:30
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/13 3:29:47
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/12 15:39:57
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/12 8:07:36