"""Diagnóstico puntual: imprime el texto CRUDO que pdfplumber extrae de una
página de un PDF (masivo o individual), tal cual lo ve liquidaciones_masivo.py.
Uso: python debug_pagina.py --pdf "ruta.pdf" --pagina 3
"""
import argparse
import json
import pdfplumber
from liquidaciones_masivo import _extraer


def main():
    ap = argparse.ArgumentParser()
    ap.add_argument("--pdf", required=True)
    ap.add_argument("--pagina", type=int, required=True, help="1-based")
    args = ap.parse_args()

    with pdfplumber.open(args.pdf) as pl:
        idx = args.pagina - 1
        if idx < 0 or idx >= len(pl.pages):
            print(f"Página {args.pagina} fuera de rango (el PDF tiene {len(pl.pages)} páginas).")
            return
        texto = pl.pages[idx].extract_text() or ""

    print("===== TEXTO CRUDO (repr, para ver espacios/saltos exactos) =====")
    print(repr(texto))
    print("\n===== TEXTO CRUDO (legible) =====")
    print(texto)
    print("\n===== _extraer() sobre ese texto =====")
    print(json.dumps(_extraer(texto), ensure_ascii=False, indent=2))


if __name__ == "__main__":
    main()
