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 @ 2022-02-15 15:33  studieren  阅读(917)  评论(0)    收藏  举报