Я использую пакет CoreHtmlToImage
Вот функция контроллера:
Код: Выделить всё
[HttpPost("/card/download")]
public async Task DownloadCard([FromForm]string CardNumber)
{
if (CardNumber == null) return BadRequest("Card Number cannot be empty");
try
{
var card = await _repository.GetCard(CardNumber);
if (card == null) return BadRequest("Card not found");
var backImage = Path.Combine(_environment.WebRootPath, "Images/", "card-template.png");
var htmlContent = System.IO.File.ReadAllText("Static/card-template.html");
htmlContent = htmlContent.Replace("{{BackgroundImage}}", backImage)
.Replace("{{Name}}", card.Name)
.Replace("{{NameInHindi}}", card.NameInHindi)
.Replace("{{DateOfBirth}}", card.DateOfBirth.ToString("dd/MM/yyyy"));
var image = await GenerateImageAsync(htmlContent);
return File(image, "image/png", $"Card_{card.CardNumber}.png");
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
Код: Выделить всё
private async Task GenerateImageAsync(string htmlContent)
{
var converter = new HtmlConverter();
var bytes = converter.FromHtmlString(htmlContent, 700, ImageFormat.Png);
return bytes;
}
Код: Выделить всё
Card
[img]{{BackgroundImage}}[/img]
{{NameInHindi}}
{{Name}}
जन्म तिथि / DOB : {{DateOfBirth}}
{{CardNumber}}
Подробнее здесь: https://stackoverflow.com/questions/787 ... re-web-api