PDF里有88张图片,老板要你全部提取出来。右键没有“另存为”,只能用截图工具一张一张框选、保存、命名……搞了半天,图片还是糊的。
我写了25行代码,一键提取PDF所有图片,原图导出,画质无损。
效果预览
提取后:
PDF图片提取/├── 产品手册_图片/│ ├── 第1页_图片001.jpg│ ├── 第2页_图片001.jpg│ └── ...└── 提取报告.xlsx
核心代码(精简版)
import fitzdef extract_pdf_images(pdf_path, output_folder):doc = fitz.open(pdf_path)count = 0for page in doc:for img in page.get_images():xref = img[0]base_image = doc.extract_image(xref)with open(f"{output_folder}/图片_{count+1}.{base_image['ext']}", 'wb') as f:f.write(base_image["image"])count += 1print(f"✅ 提取 {count} 张图片")
怎么用
pip install PyMuPDF pandas openpyxl复制完整代码保存为
.py运行,输入PDF文件夹路径
查看「PDF图片提取」文件夹
核心原理
为什么能够无损提取? PyMuPDF(fitz)可以直接读取PDF内部结构,通过page.get_images()获取所有图片对象,再用extract_image()提取原始图片数据。PDF中的图片是嵌入的原始文件,直接提取出来就是原图,画质完全无损。
夜雨聆风