All checks were successful
Build and Deploy / remote-build-and-deploy (push) Successful in 28m23s
35 lines
1.5 KiB
C#
35 lines
1.5 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using System.Threading.Tasks;
|
|
using PuppeteerSharp.Media;
|
|
|
|
namespace GestionIntegral.Api.Services.Pdf
|
|
{
|
|
/// <summary>
|
|
/// Define las opciones de configuración para la generación de un PDF.
|
|
/// </summary>
|
|
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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Servicio para generar documentos PDF a partir de plantillas Razor.
|
|
/// </summary>
|
|
public interface IPdfGeneratorService
|
|
{
|
|
/// <summary>
|
|
/// Genera un archivo PDF a partir de una plantilla Razor y un modelo de datos.
|
|
/// </summary>
|
|
/// <typeparam name="T">El tipo del modelo de datos.</typeparam>
|
|
/// <param name="templatePath">La ruta relativa de la plantilla Razor (ej: "Controllers/Reportes/Templates/MiReporte.cshtml").</param>
|
|
/// <param name="model">El objeto con los datos para rellenar la plantilla.</param>
|
|
/// <param name="options">Opciones de configuración para el PDF (márgenes, formato, etc.).</param>
|
|
/// <returns>Un array de bytes representando el archivo PDF generado.</returns>
|
|
Task<byte[]> GeneratePdfFromRazorTemplateAsync<T>(string templatePath, T model, PdfGenerationOptions? options = null);
|
|
}
|
|
} |