import os
import json
import pytesseract
from pdf2image import convert_from_path

def extract_pdf(pdf_path, output_dir):
    pages = convert_from_path(pdf_path, 300)
    results = []

    os.makedirs(output_dir, exist_ok=True)

    for i, page in enumerate(pages):
        page_num = i + 1

        image_name = f"page_{page_num:03d}.jpg"
        image_path = os.path.join(output_dir, image_name)

        page.save(image_path, "JPEG", quality=85)

        text = pytesseract.image_to_string(page)

        results.append({
            "page": page_num,
            "image": image_path,
            "markup": text.strip()
        })

    return results


if __name__ == "__main__":
    import sys

    pdf_path = sys.argv[1]
    output_dir = sys.argv[2]

    data = extract_pdf(pdf_path, output_dir)
    print(json.dumps(data))