itextSharp - 仅保存在服务器中,不要打开创建

时间:2014-05-17 10:27:06

标签: itextsharp

我可以生成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();

1 个答案:

答案 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(无内容)。