当前位置:首页>python>【Python办公】PDF批量提取图片神器

【Python办公】PDF批量提取图片神器

  • 2026-09-09 17:21:41
【Python办公】PDF批量提取图片神器

告别手动截图:用 Python + PyQt5 打造一个高颜值的“PDF批量提取图片”神器!

日常办公中,你有没有遇到过这样的头痛时刻:领导或客户发来一份几十页甚至上百页的 PDF 产品手册或者 PPT 汇报,需要你把里面的高清图片原封不动地全部提取出来。

怎么弄?一页一页放大截图?不仅图片模糊失真,而且手腕都要截断了!

今天,教大家用 Python 写一款超高颜值、支持批量拖拽的「PDF批量提取图片」桌面端小工具。只需 3 秒,就能把一整个文件夹的 PDF 里面的原始高清图片全部“榨干”!


欢迎大家关注此公众号,后台留言"python书籍"可免费获取【Python办公自动化高清PDF】电子书一本

此外小庄推荐一本适合于新手\小白入手一本 Python基础书籍,欢迎大家订阅

💡 为什么要自己造轮子?

虽然市面上有很多在线 PDF 转换工具,但往往伴随以下问题:

  1. 1. 安全隐患:涉密文件上传到第三方服务器不安全。
  2. 2. 收费限制:免费版常常限制页数、大小,或者提取出来的图片带水印。
  3. 3. 操作繁琐:很多工具不支持批量导入或文件夹层级的处理。

因此,拥有一个本地化运行、完全免费、支持批量操作的小工具,简直就是打工人的效率外挂!


🚀 核心功能展示

在这款工具中,我为它设计了以下功能亮点:

  • • 🎨 现代化界面:摒弃了 Python 原生 Tkinter 的粗糙感,采用了 PyQt5 结合 QSS 样式表,打造扁平化、现代感 UI。
  • • 📂 支持拖拽上传:你可以直接把桌面的多个 PDF,甚至是包含了几十个 PDF 的整个文件夹,一键拖入软件中间区域,它会自动过滤并加载所有 PDF 文件。
  • • ⚡ 多线程处理:提取图片可能是一个耗时操作。通过引入 QThread,保证了提取过程中界面完全不卡顿,并且配有实时更新的进度条和运行日志。
  • • 📦 智能分类存储:提取的图片会自动在输出目录中,根据原来的 PDF 文件名建立独立的子文件夹,绝不会把图片混在一块!

🛠️ 技术原理解析

这款神器的核心技术栈非常简单:Python + PyQt5 + PyMuPDF。

1. 为什么选择 PyMuPDF?

提取 PDF 里的元素有很多库(如 PyPDF2, pdfplumber),但 PyMuPDF(在代码中名为 fitz)在处理 PDF 内嵌图片时,速度最快、提取最彻底,并且能够获取图片的原始格式和字节流,不会出现压缩失真。

2. PyQt5 界面搭建

在主界面中,我们通过重写 QListWidget 的 dragEnterEvent 和 dropEvent 方法,轻松实现了拖拽文件功能。

classDropListWidget(QListWidget):
defdragEnterEvent(self, event):
if event.mimeData().hasUrls():
            event.accept()
else:
            event.ignore()

defdropEvent(self, event):
if event.mimeData().hasUrls():
            event.accept()
# 解析拖拽进来的文件路径...

3. 多线程防卡顿 (QThread)

如果在主线程直接循环处理几百页的 PDF,软件窗口会直接显示“无响应”。为了提升体验,我们将提取逻辑封装进 ExtractWorker(QThread) 中,通过 PyQt 的信号与槽机制(Signal & Slot),把日志和进度发回给主线程更新 UI:

classExtractWorker(QThread):
    progress = pyqtSignal(int, str)
    log = pyqtSignal(str)

defrun(self):
# 遍历所有 PDF 文件
for pdf inself.pdf_files:
# 提取图片并保存
            ...
# 发射进度信号
self.progress.emit(percent, text)

🏃 怎么跑起来?

我已经将完整代码开源,只需简单几步即可在你的电脑上运行:

  1. 1. 配置环境:确保你安装了 Python (推荐 3.7+)。
  2. 2. 安装依赖:打开终端,输入以下命令安装核心库:
    pip install PyQt5 PyMuPDF
  3. 3. 运行代码:将代码保存为 main.py,然后在终端执行 python main.py。
  4. 4. 开始使用:在弹出的漂亮窗口中,拖入你的 PDF 文件,点击“开始提取”,去桌面的 PDF_Images 文件夹里验收战果吧!

欢迎大家关注此公众号,后台留言"python书籍"可免费获取【Python办公自动化高清PDF】电子书一本

此外小庄推荐一本适合于新手\小白入手一本 Python基础书籍,欢迎大家订阅


结语

写代码最大的乐趣,就是能用技术解决生活和工作中的真实痛点。这个小工具不仅能帮你节省大量的截图时间,还能顺带学习 PyQt5 的 GUI 开发和 PyMuPDF 的操作技巧。

如果你觉得这个工具对你有帮助,欢迎自己动手跑一跑,或者根据你的需求继续魔改(比如加上图片格式转换、尺寸过滤等功能)。

代码改变世界,哪怕只是让我们少按几次截屏快捷键! 💻✨

最新文章

随机文章