import os
from pathlib import Path
from pypdf import PdfReader, PdfWriter

def limpiar_metadatos_pdf(ruta_pdf):
    """Elimina los metadatos de un archivo PDF y lo sobrescribe."""
    try:
        reader = PdfReader(ruta_pdf)
        writer = PdfWriter()

        # Copiar todas las páginas
        for page in reader.pages:
            writer.add_page(page)

        # Eliminar metadatos: no asignamos ninguno
        # writer.add_metadata({})  # Esto también funciona, pero omitirlo es suficiente

        # Sobrescribir el archivo original
        with open(ruta_pdf, "wb") as f:
            writer.write(f)

        print(f"Metadatos eliminados: {ruta_pdf}")

    except Exception as e:
        print(f"Error al procesar {ruta_pdf}: {e}")

def procesar_directorio_recursivo(ruta_directorio):
    """Recorre recursivamente un directorio y limpia los metadatos de todos los PDFs."""
    directorio = Path(ruta_directorio)
    if not directorio.is_dir():
        print(f"La ruta {ruta_directorio} no es un directorio válido.")
        return

    for archivo in directorio.rglob("*.pdf"):
        if archivo.is_file():
            limpiar_metadatos_pdf(archivo)

if __name__ == "__main__":
    # Cambia esta ruta por la de tu directorio
    ruta = input("Introduce la ruta del directorio a procesar: ").strip()
    if ruta:
        procesar_directorio_recursivo(ruta)
    else:
        print("No se proporcionó una ruta válida.")
