"""pdf_add_page — añade una pagina al documento PDF.""" 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_add_page( doc: PDFDoc, orientation: str = "portrait", width: float | None = None, height: float | None = None, ) -> PDFDoc: """Añade una pagina nueva al documento PDF. Usa orientacion y dimensiones especificadas, o hereda las del documento. Si se especifica width/height se usa formato personalizado; si no, se usa A4 con la orientacion indicada. Args: doc: PDFDoc retornado por pdf_create. orientation: orientacion de la pagina: 'portrait' o 'landscape'. width: ancho personalizado en mm. Si None, usa A4 (210 mm). height: alto personalizado en mm. Si None, usa A4 (297 mm). Returns: PDFDoc con la nueva pagina añadida (mismo objeto modificado). """ fpdf = doc.fpdf orient_char = "P" if orientation == "portrait" else "L" if width is not None and height is not None: fpdf.add_page(orientation=orient_char, format=(width, height)) else: fpdf.add_page(orientation=orient_char, format="A4") actual_w = fpdf.w actual_h = fpdf.h doc.pages.append({ "orientation": orientation, "width": actual_w, "height": actual_h, }) return doc