using DinkToPdf; using DinkToPdf.Contracts; using Microsoft.AspNetCore.Mvc; using System.IO; namespace PdfService.Controllers { [ApiController] public class PdfController : ControllerBase { private IConverter _converter; public PdfController(IConverter converter) { _converter = converter; } // GET /generatePDF [Route("generatePDF")] [HttpGet] public ActionResult Get() { var globalSettings = new GlobalSettings { ColorMode = ColorMode.Color, Orientation = Orientation.Portrait, PaperSize = PaperKind.A4, Margins = new MarginSettings { Top = 10 }, DocumentTitle = "PDF Report", }; var objectSettings = new ObjectSettings { PagesCount = true, HtmlContent = "test", WebSettings = { DefaultEncoding = "utf-8", UserStyleSheet = Path.Combine(Directory.GetCurrentDirectory(), "assets", "styles.css") }, HeaderSettings = { FontName = "Arial", FontSize = 9, Right = "Page [page] of [toPage]", Line = true }, FooterSettings = { FontName = "Arial", FontSize = 9, Line = true, Center = "Report Footer" } }; var pdf = new HtmlToPdfDocument() { GlobalSettings = globalSettings, Objects = { objectSettings } }; var file = _converter.Convert(pdf); return File(file, "application/pdf"); } } }