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)