Asp.net mvc 提示下载生成的PDF文件
我一直在尝试从我的应用程序生成简单的PDF,以便以后可以使用动态数据生成PDF。我的代码会生成文件,但我希望有一种方法可以让浏览器提示下载文件 实际上,我甚至不想在我的服务器上存储生成的文件,但我不知道如何让它只提供给用户,而不首先将其存储在服务器驱动器中Asp.net mvc 提示下载生成的PDF文件,asp.net-mvc,pdf-generation,itextsharp,Asp.net Mvc,Pdf Generation,Itextsharp,我一直在尝试从我的应用程序生成简单的PDF,以便以后可以使用动态数据生成PDF。我的代码会生成文件,但我希望有一种方法可以让浏览器提示下载文件 实际上,我甚至不想在我的服务器上存储生成的文件,但我不知道如何让它只提供给用户,而不首先将其存储在服务器驱动器中 public ActionResult GetPDF() { Document document = new Document(); PdfWriter.GetInstance(document, new FileStream
public ActionResult GetPDF()
{
Document document = new Document();
PdfWriter.GetInstance(document, new FileStream(Server.MapPath("../Content/test.pdf"), FileMode.Create));
document.Open();
string strHTML = "<B>I Love ASP.Net!</B>";
HTMLWorker htmlWorker = new HTMLWorker(document);
htmlWorker.Parse(new StringReader(strHTML));
document.Close();
return File(document, "application/pdf", Server.HtmlEncode(filename));//this doesnt work, obviously
}
public ActionResult GetPDF()
{
文档=新文档();
GetInstance(文档,新文件流(Server.MapPath(“../Content/test.pdf”),FileMode.Create));
document.Open();
string strHTML=“我爱ASP.Net!”;
HTMLWorker HTMLWorker=新HTMLWorker(文档);
Parse(新的StringReader(strHTML));
document.Close();
返回文件(文档“application/pdf”,Server.HtmlEncode(文件名));//显然这不起作用
}
使用FileStreamResult
操作
public FileStreamResult Export(int? ID)
{
MemoryStream stream = new MemoryStream();
//Start of PDF work using iTextSharp PDF library
Document pdf = new Document();
PdfWriter writer = PdfWriter.GetInstance(pdf, stream);
pdf.Open();
pdf.Add(new Phrase("test"));
pdf.Close();
//End of PDF work using iTextSharp PDF library
//Where the download magic happens
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=Log.pdf");
Response.Buffer = true;
Response.Clear();
Response.OutputStream.Write(stream.GetBuffer(), 0, stream.GetBuffer().Length);
Response.OutputStream.Flush();
Response.End();
return new FileStreamResult(Response.OutputStream, "application/pdf");
}
你需要做一些像 改变
PdfWriter.GetInstance(document, new FileStream(Server.MapPath("../Content/test.pdf"), FileMode.Create));
到
最后
Response.Clear;
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=PDFFile.pdf");
ms.Write(Response.OutputStream);
这给了我几个错误。。主要是Write女士,她不以Response.OutputStream作为参数。。。如果mvc2上的im产生了不同的blimage.AddCell();pdf.Add(图片);这两行给了我一个错误:SSORY,拿出一堆,你只需要底部的部分,我会更新以澄清。只是好奇,你用什么API生成PDF?
Response.Clear;
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=PDFFile.pdf");
ms.Write(Response.OutputStream);