"""pdf_merge — fusiona multiples archivos PDF en uno solo usando pypdf.""" import os def pdf_merge( pdf_paths: list[str], output_path: str, ) -> str: """Fusiona una lista de archivos PDF en un unico PDF. Une los PDFs en el orden de la lista. Requiere pypdf instalado. Args: pdf_paths: lista de rutas a los archivos PDF a fusionar (en orden). output_path: ruta del archivo PDF combinado a generar. Returns: output_path con el PDF fusionado guardado. Raises: FileNotFoundError: si alguno de los archivos no existe. RuntimeError: si pypdf no esta instalado. ValueError: si pdf_paths esta vacio. """ if not pdf_paths: raise ValueError("pdf_paths no puede estar vacio") for path in pdf_paths: if not os.path.exists(path): raise FileNotFoundError(f"PDF no encontrado: {path}") try: from pypdf import PdfWriter, PdfReader except ImportError as exc: raise RuntimeError( "pypdf no esta instalado. Instalar con: pip install pypdf" ) from exc writer = PdfWriter() for path in pdf_paths: reader = PdfReader(path) for page in reader.pages: writer.add_page(page) with open(output_path, "wb") as f: writer.write(f) return output_path