import unicodedata import re # Remove caracteres inválidos de nomes de arquivos def sanitize_filename(filename: str) -> str: # Normaliza Unicode (NFC) filename = unicodedata.normalize("NFKD", filename) filename = filename.encode("ascii", "ignore").decode("ascii") # Remove caracteres inválidos filename = re.sub(r'[<>:"/\\|?*\x00-\x1F]', "", filename) # Substitui espaços múltiplos por um espaço filename = re.sub(r"\s+", " ", filename).strip() # Garante extensão if "." not in filename: filename += ".pdf" return filename