using DinkToPdf; using DinkToPdf.Contracts; using Microsoft.AspNetCore.Mvc; using System.IO; using PdfService.Utility; using PdfService.Models; 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 = 0, Left = 0, Right = 0 }, DocumentTitle = "PDF Report", }; var objectSettings = new ObjectSettings { PagesCount = true, HtmlContent = TemplateGenerator.GetHTMLString(new Tweet[]{new Tweet("Test", "Good"), new Tweet("Test2", "Bad")}), WebSettings = { DefaultEncoding = "utf-8", UserStyleSheet = Path.Combine(Directory.GetCurrentDirectory(), "assets", "bulma.min.css") } }; var pdf = new HtmlToPdfDocument() { GlobalSettings = globalSettings, Objects = { objectSettings } }; var file = _converter.Convert(pdf); return File(file, "application/pdf"); } } }