You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python从PDF文件提取图片、视频及音频?

从PDF中提取视频、音频和图片的Python方案

PyPDF2仅专注于PDF文本与结构解析,对嵌入式多媒体文件的支持非常有限;Pillow是图像处理库,本身不具备PDF多媒体提取能力,这就是你之前尝试失败的原因。推荐使用PyMuPDF(fitz),它能高效处理PDF中的各类嵌入式对象,包括图片、音频和视频。

步骤1:安装依赖

pip install pymupdf

步骤2:完整提取代码

import fitz
import os

def extract_media_from_pdf(pdf_path, output_dir="pdf_media"):
    # 创建分类输出目录
    os.makedirs(output_dir, exist_ok=True)
    img_dir = os.path.join(output_dir, "images")
    audio_dir = os.path.join(output_dir, "audio")
    video_dir = os.path.join(output_dir, "video")
    for dir_path in [img_dir, audio_dir, video_dir]:
        os.makedirs(dir_path, exist_ok=True)

    # 打开PDF文件
    doc = fitz.open(pdf_path)

    # 提取页面内嵌图片
    img_count = 0
    for page_num in range(len(doc)):
        page = doc[page_num]
        image_list = page.get_images(full=True)
        for img in image_list:
            xref = img[0]
            base_image = doc.extract_image(xref)
            img_count += 1
            img_filename = f"page_{page_num+1}_img_{img_count}.{base_image['ext']}"
            with open(os.path.join(img_dir, img_filename), "wb") as f:
                f.write(base_image["image"])

    # 提取嵌入式音频/视频附件
    emb_names = doc.embfile_get_names()
    for name in emb_names:
        emb_data = doc.embfile_get(name)
        # 根据后缀分类保存
        if name.lower().endswith((".mp3", ".wav", ".flac", ".aac")):
            save_path = os.path.join(audio_dir, name)
        elif name.lower().endswith((".mp4", ".avi", ".mov", ".mkv")):
            save_path = os.path.join(video_dir, name)
        else:
            continue
        with open(save_path, "wb") as f:
            f.write(emb_data)

    doc.close()
    print(f"提取完成,所有媒体文件已保存至 {output_dir}")

# 调用示例
if __name__ == "__main__":
    extract_media_from_pdf("your_target.pdf")

关键说明

  • 图片提取:遍历每一页获取页面内嵌的图片资源,按页面编号命名区分。
  • 音频/视频提取:读取PDF中的嵌入式附件,通过文件后缀判断类型后分类保存。
  • 加密PDF处理:打开时需添加密码参数,如doc = fitz.open(pdf_path, password="your_pwd")。
  • 特殊格式兼容:可根据需求补充更多媒体后缀的判断规则。

内容的提问来源于stack exchange,提问作者George Davis-Diver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 02:20:47