using Microsoft.AspNetCore.Mvc; using System.Threading.Tasks; using PuppeteerSharp.Media; namespace GestionIntegral.Api.Services.Pdf { /// /// Define las opciones de configuración para la generación de un PDF. /// public class PdfGenerationOptions { public PaperFormat? Format { get; set; } = PaperFormat.A4; public MarginOptions? Margin { get; set; } public string? HeaderTemplate { get; set; } public string? FooterTemplate { get; set; } public bool PrintBackground { get; set; } = true; public bool Landscape { get; set; } = false; } /// /// Servicio para generar documentos PDF a partir de plantillas Razor. /// public interface IPdfGeneratorService { /// /// Genera un archivo PDF a partir de una plantilla Razor y un modelo de datos. /// /// El tipo del modelo de datos. /// La ruta relativa de la plantilla Razor (ej: "Controllers/Reportes/Templates/MiReporte.cshtml"). /// El objeto con los datos para rellenar la plantilla. /// Opciones de configuración para el PDF (márgenes, formato, etc.). /// Un array de bytes representando el archivo PDF generado. Task GeneratePdfFromRazorTemplateAsync(string templatePath, T model, PdfGenerationOptions? options = null); } }