"""pdf_save — guarda el documento PDF a un archivo o retorna bytes.""" import sys import os _types_dir = os.path.join(os.path.dirname(__file__), "..", "..", "..", "python", "types", "infra") sys.path.insert(0, _types_dir) from pdf_doc import PDFDoc def pdf_save( doc: PDFDoc, output_path: str | None = None, ) -> str | bytes: """Guarda el documento PDF a un archivo o retorna los bytes del PDF. Si se especifica output_path, escribe el PDF en disco y retorna el path. Si output_path es None, retorna los bytes del PDF sin escribir a disco. Args: doc: PDFDoc con al menos una pagina de contenido. output_path: ruta del archivo PDF a crear. None retorna bytes. Returns: output_path si se especifico, o bytes del PDF si output_path es None. """ if output_path is not None: doc.fpdf.output(output_path) return output_path else: return bytes(doc.fpdf.output())