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);
}
}