import fitz  # PyMuPDF
import os

# Load the PDF
pdf_path = "1719331743Code-of-Conduct.pdf"
doc = fitz.open(pdf_path)

# Create output folders
os.makedirs("pdf_output/images", exist_ok=True)
os.makedirs("pdf_output/text", exist_ok=True)

# Loop through each page
for page_num in range(len(doc)):
    page = doc[page_num]
    text = page.get_text()

    # Save text
    text_filename = f"pdf_output/text/page_{page_num+1}.txt"
    with open(text_filename, "w", encoding="utf-8") as f:
        f.write(text)
    print(f"✅ Text saved: {text_filename}")

    # Extract and save images
    images = page.get_images(full=True)
    print(f"📷 Found {len(images)} image(s) on Page {page_num+1}")
    
    for i, img in enumerate(images):
        xref = img[0]
        base_image = doc.extract_image(xref)
        image_bytes = base_image["image"]
        image_ext = base_image["ext"]
        
        image_filename = f"pdf_output/images/page_{page_num+1}_img_{i+1}.{image_ext}"
        with open(image_filename, "wb") as f:
            f.write(image_bytes)
        print(f"🖼️ Image saved: {image_filename}")
