0

I have project written in Angular + TS + Net 6 Web api.

My goal is to have button. On button click, pdf should be created in backend and PDF downloaded to user.

PDF is long report which has some variables. I heard that PDF can be generated from HTML. To simplify, lets say it looks like this:

<html>
   <head></head>
   <body>
      <div>My name is FirstParameter</div>
      <div>My age is SecondParameter</div>
   </body>
</html>

I believe FileStreamResult should be returned in backend. How to achieve it (prefer without 3rd party library)

.cs

[HttpGet]
[Route("DownloadPDF")]
public async Task<IActionResult> DownloadPDF(Guid userId)
{
    var user = await _context.Users.FirstAsync(p=>p.id == userId);
    string firstParameter = user.FirstName;
    string secondParameter = user.SecondName;

    // generating pdf as filestream

    return File(fs, "application/pdf", "random.pdf");
}

.html

<a (click)="download('f58c8036-915a-4c39-bbb8-352e21eae49c')">Download pdf</a>

.ts

    download(id) {

    }

0 Answers0