我可以生成PDF文件并将其成功保存在服务器中,但是,我不希望在当前浏览器上打开新创建的文件。
我正在生成多个文件并一次邮寄。
如何阻止浏览器打开新创建的文件。
Response.ContentType = "application/pdf";
//Response.AddHeader("content-disposition", "attachment;filename=Panel.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
WholeForm.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 50f, 50f, 30f, 20f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
PdfWriter.GetInstance(pdfDoc, new FileStream("\\\\sever\\d$\\PDFs\\" + hdnFileName.Text + ".pdf", FileMode.Create));
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
pdfDoc.Dispose();
//SendEmail();
//Response.Write(pdfDoc);
//Response.End();
答案 0 :(得分:0)
您正在将内容类型设置为PDF:
Response.ContentType = "application/pdf";
您正在使用以下行向浏览器发送字节:
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
删除涉及Response
对象的所有行,包括:
Response.Cache.SetCacheability(HttpCacheability.NoCache);
剩下的主要问题是:您想将什么内容发送到浏览器? 如果您想通知最终用户他的PDF正在保存,您可能希望使用此消息显示一些简单的HTML代码,例如by using a response status code 300(重定向)。或者你don't send anything by returning the response code 204(无内容)。