I use iTextSharp to generate dynamic PDF’s in MVC. All you need to do is put your PDF into a Stream object and then your ActionResult return a FileStreamResult. I also set the content-disposition so the user can download it.
public FileStreamResult PDFGenerator() { Stream fileStream = GeneratePDF(); HttpContext.Response.AddHeader("content-disposition", "attachment; filename=form.pdf"); return new FileStreamResult(fileStream, "application/pdf"); }
I also have code that enables me to take a template PDF, write text and images to it etc (if you wanted to do that).
- Note: you must set the Stream position to 0.
private Stream GeneratePDF() { //create your pdf and put it into the stream... pdf variable below //comes from a class I use to write content to PDF files MemoryStream ms = new MemoryStream(); byte[] byteInfo = pdf.Output(); ms.Write(byteInfo, 0, byteInfo.Length); ms.Position = 0; return ms; }