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 文件中不存在图片")
判断本地pdf中是否存在图片
最新推荐文章于 2024-10-29 09:22:13 发布