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;
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…