Python提取PDF中所有的图片

安装第三方库

pip install pymupdf

 

代码

复制代码
# -*- coding: utf-8 -*-
"""
@Author  : Administrator
@Software: Pycharm
@File: getPDFimage.py
@Time    : 2022-02-14 18:43

"""
# 导入库
import fitz, os, io
from PIL import Image


def pdf2image(filename, image_path):
    """
    提取PDF中的所有图片
    :param filename: 图片所在路径,"C:\\Users\\Administrator\\Desktop\\nwd.pdf"
    :param image_path: 图片提取后的保存路径
    :return:
    """
    # open file
    with fitz.Document(filename) as my_pdf_file:
        # 遍历所有页面
        for page_number in range(1, len(my_pdf_file) + 1):

            # 查看独立页面
            page = my_pdf_file[page_number - 1]

            # 查看当前页所有图片
            images = page.get_images()

            # 查看是否有图片
            if images:
                print(f"There are {len(images)} image/s on page number {page_number}[+]")
            else:
                print(f"There are No image/s on page number {page_number}[!]")

            # 遍历当前页面所有图片
            for image_number, image in enumerate(page.get_images(), start=1):
                # 访问图片xref
                xref_value = image[0]

                # 提取图片信息
                base_image = my_pdf_file.extract_image(xref_value)

                # 访问图片
                image_bytes = base_image["image"]

                # 获取图片扩展名
                ext = base_image["ext"]

                # 加载图片
                image = Image.open(io.BytesIO(image_bytes))

                # 保存图片
                image_name = f"Page{page_number}Image{image_number}.{ext}"
                im_path = os.path.join(image_path, image_name)
                image.save(open(im_path, "wb"))


if __name__ == '__main__':
    file_path = "C:\\Users\\Administrator\\Desktop\\nwd.pdf"  # PDF 文件路径
    image_path = r'C:\Users\Administrator\Desktop\media'
    pdf2image(file_path, image_path)
复制代码

 

  

posted @   studieren  阅读(803)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示