判断本地pdf中是否存在图片

import fitz
import os
import re

def has_images_in_pdf(pdf_path, save_path):
    """
    此函数用于检查给定的 PDF 文件路径中是否存在图片,并将图片保存到指定路径

    参数:
    pdf_path (str): 要检查的 PDF 文件的路径
    save_path (str): 保存图片的目录路径
    """
    # 打开 PDF 文件
    pdf_document = fitz.open(pdf_path)
    has_image = False  # 初始化标志,用于表示是否存在图片

    for page_num in range(pdf_document.page_count):
        """
        遍历 PDF 文件的每一页
        """
        # 获取当前页
        page = pdf_document[page_num]
        # 获取当前页的所有图片信息
        image_list = page.get_images(full=True)
        if image_list:
            """
            如果当前页存在图片
            """
            has_image = True  # 将标志设置为 True
            for img_index, img_info in enumerate(image_list, start=1):
                """
                遍历当前页的每一张图片
                """
                # 获取图片的 xref 值
                xref = img_info[0]
                # 提取图片的详细信息
                base_image = pdf_document.extract_image(xref)
                # 获取图片的数据
                image_data = base_image["image"]
                # 获取图片的扩展名
                image_ext = base_image["ext"]
                # 构建图片的保存名称
                image_name = f"page_{page_num + 1}_img_{img_index}.{image_ext}"
                # 构建图片的完整保存路径
                image_path = os.path.join(save_path, image_name)
                # 以二进制写入模式打开文件并保存图片数据
                with open(image_path, "wb") as img_file:
                    img_file.write(image_data)
            break  # 一旦找到图片,就不再检查后续页面
    # 关闭 PDF 文件
    pdf_document.close()
    return has_image  # 返回是否存在图片的标志

pdf_path = r"D:\360安全浏览器下载\验证图片识别\01955-JOHNSONHLDGS-2024-05-20-YWSCSMJ1.pdf"  # 要检查的 PDF 文件路径
save_path = r"D:\360安全浏览器下载\验证图片识别"  # 保存图片的目录路径

if has_images_in_pdf(pdf_path, save_path):
    print("PDF 文件中存在图片,并已保存到指定位置")
else:
    print("PDF 文件中不存在图片")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值