我想根据项目名称给出一个文件名。以下这一行是静态命名pdf
Response.AddHeader("content-disposition", "attachment;filename=WeeklyReport.pdf");
输出文件名 - weeklyreport.pdf
虽然给动态名称不接受.pdf
Response.AddHeader("content-disposition", "attachment;filename=" + Projname + ".pdf");
输出TestingProject 这里缺少.pdf,所以默认情况下不能以pdf格式打开
答案 0 :(得分:1)
要制作pdf文件并动态命名,你可以像这样使用
Response.AddHeader("content-disposition", Response.Clear();
Response.AddHeader("content-disposition", string.Format("attachment;filename=\"{0}.pdf\"", Projname));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
design.RenderControl(htmlWrite);
string myText = stringWrite.ToString().Replace("&", "&");
StringReader sr = new StringReader(myText.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
Response.ContentType = "application/pdf";
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
pdfDoc.Close();
Response.End();
pdfDoc.Dispose();