import fitz


def rebuild_pdf(blocks, output_path, original_pdf_path):

    doc = fitz.open(original_pdf_path)

    pages = {}

    for b in blocks:
        pages.setdefault(b["page"], []).append(b)

    for page_index, items in pages.items():

        page = doc[page_index]

        for item in items:

            text = item["text"]
            bbox = item["bbox"]

            if not bbox:
                continue

            x1, y1 = bbox[0]
            x2, y2 = bbox[2]

            rect = fitz.Rect(x1, y1, x2, y2)

            # 🔥 1. limpiar zona (suave)
            page.draw_rect(rect, fill=(1, 1, 1))

            # 🔥 2. ajustar tamaño automático
            font_size = max(6, (y2 - y1) * 0.6)

            page.insert_textbox(
                rect,
                text,
                fontsize=font_size,
                fontname="helv",
                color=(0, 0, 0),
                align=0
            )

    doc.save(output_path)
    doc.close()