平时学习、办公经常遇到 PDF 转图片需求:
课件、简历、证明文件需要高清截图,但是网上在线工具要么有水印、要么限制页数、画质压缩严重。
今天分享一个免费、本地、无限制、高清无损的 Python 方案,几行代码搞定 PDF 批量转图片,永久自用不收费。
✅ 整本书/整本PDF批量分页转图
✅ 支持指定页码转换,不用全部转
✅ 自定义高清DPI,比在线工具更清晰
✅ 本地运行、无上传、隐私安全
✅ 无水印、无页数限制
本次我们使用**PyMuPDF(fitz)**模块实现转换,相比传统方案优势极大:无需配置poppler、安装简单、转换速度更快、高清无损、适配所有系统,是目前Python最优PDF转图方案。
安装依赖库:
无需额外安装任何工具、无需配置环境,安装依赖即可直接运行,Windows/Mac/Linux全平台通用。
下面是精简可用版本,自动分页、自动保存高清 PNG:
7doc = fitz.open(pdf_path)8# 设置转换分辨率(数值越大越清晰,默认2.0,可自行调整)10mat = fitz.Matrix(zoom, zoom)13for page_num in range(len(doc)):14 page = doc.load_page(page_num)15 pix = page.get_pixmap(matrix=mat)17 pix.save(f"page_{page_num+1}.png")日常使用更推荐下面这个版本,支持局部转换、自动归档:
4def pdf_to_image(pdf_path, start=1, end=None):7 if not os.path.exists(out_dir):11 doc = fitz.open(pdf_path)13 start_page = start - 114 end_page = end if end else len(doc)18 mat = fitz.Matrix(zoom, zoom)21 for page_num in range(start_page, end_page):22 page = doc.load_page(page_num)23 pix = page.get_pixmap(matrix=mat)24 pix.save(f"{out_dir}/第{page_num+1}页.png")27 print("批量转换完成,图片已保存至 pdf_img 文件夹!")29# 仅转换1-10页,删除end参数可转换全部页面30pdf_to_image("test.pdf", start=1, end=10)zoom=3.0:画质缩放系数,控制清晰度,2-3为日常高清,4为超高清
start / end 页码参数:支持精准区间转换,无需遍历全文档,高效省时
自动分页保存:不会覆盖、不乱文件
1. 运行报错、文件读取失败
检查PDF文件路径是否正确,文件不能被其他软件占用,关闭PDF文件后重新运行代码即可。
2. 图片模糊
调高zoom数值即可,zoom=3高清、zoom=4超清,满足打印、海报制作需求。
3. 中文路径报错
PDF 文件重命名为英文/数字即可。
文档预览系统:批量生成PDF缩略图
OCR预处理:将PDF转成图像后送入文字识别模型
自动化脚本:批量提取PDF中的页面内容、图表素材
用 Python 实现 PDF 转图片,彻底摆脱各类付费工具,一次配置、终身免费使用。
不管是学习资料、合同文件、简历资料,都可以一键高清导出,效率直接拉满。
需要完整成品源码可以直接私信我~
关注我,持续分享极简实用的 Python 自动化技巧✨