import subprocess
import sys

# 先尝试安装必要的库
try:
    import fitz  # PyMuPDF
    print("PyMuPDF已安装")
except ImportError:
    print("正在安装PyMuPDF...")
    subprocess.check_call([sys.executable, "-m", "pip", "install", "--user", "PyMuPDF"])
    import fitz

pdf_path = "/root/.openclaw/media/inbound/微智电子产品基础资料---e8d64d3b-04fb-4906-98de-a40d7c88e3c5.pdf"

print("打开PDF...")
doc = fitz.open(pdf_path)
print(f"总页数: {len(doc)}")

# 提取前5页的文本和图像信息
for page_num in range(min(5, len(doc))):
    page = doc[page_num]
    print(f"\n--- 第 {page_num + 1} 页 ---")
    
    # 尝试提取文本
    text = page.get_text()
    if text.strip():
        print(f"文本内容（前1000字符）:\n{text[:1000]}")
    else:
        print("本页无文本（可能是图片）")
    
    # 获取图片信息
    images = page.get_images()
    print(f"图片数量: {len(images)}")
    
    # 提取图片
    for img_index, img in enumerate(images[:3]):  # 只提取前3张图
        xref = img[0]
        base_image = doc.extract_image(xref)
        image_bytes = base_image["image"]
        image_ext = base_image["ext"]
        
        # 保存图片
        img_filename = f"/root/.openclaw/workspace/pdf_images/page_{page_num+1}_img_{img_index+1}.{image_ext}"
        with open(img_filename, "wb") as f:
            f.write(image_bytes)
        print(f"  保存图片: {img_filename}")

doc.close()
print("\nPDF解析完成")
