"""
Pomocný nástroj – vypíše, jak pdfplumber vidí zadané PDF (surový text
i pokus o rozparsování tabulek). Slouží k návrhu parseru pro script 2,
ne k ostrému běhu.

Použití:
    venv/bin/python inspect_pdf.py PDF/kongres_2026-08-11.pdf
"""

import sys

import pdfplumber


def main(pdf_path: str) -> None:
    with pdfplumber.open(pdf_path) as pdf:
        for i, page in enumerate(pdf.pages):
            print(f"\n{'=' * 30} STRANA {i + 1} – RAW TEXT {'=' * 30}")
            print(page.extract_text())

            tables = page.extract_tables()
            print(f"\n{'=' * 30} STRANA {i + 1} – NALEZENO TABULEK: {len(tables)} {'=' * 30}")
            for t_idx, table in enumerate(tables):
                print(f"\n--- Tabulka {t_idx + 1} ---")
                for row in table:
                    print(row)

            # Slova se souřadnicemi – jen řádky mezi "OSOBY" a "MECHANIZMY",
            # ať je výpis čitelný. x0 = levý okraj slova, top = vzdálenost
            # od horního okraje stránky.
            words = page.extract_words(x_tolerance=1)
            in_section = False
            print(f"\n{'=' * 30} STRANA {i + 1} – SLOVA (OSOBY NA STAVENIŠTI) {'=' * 30}")
            prev_top = None
            for w in sorted(words, key=lambda w: (w["top"], w["x0"])):
                if "OSOBY" in w["text"].upper():
                    in_section = True
                if "MECHANIZMY" in w["text"].upper():
                    in_section = False
                if in_section:
                    if prev_top is not None and abs(w["top"] - prev_top) > 3:
                        print("")
                    print(f"  top={w['top']:.1f} x0={w['x0']:.1f} x1={w['x1']:.1f}  {w['text']!r}")
                    prev_top = w["top"]


if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Použití: python inspect_pdf.py <cesta_k_pdf>")
        sys.exit(1)
    main(sys.argv[1])
