打开pdf在新标签中

时间:2011-06-30 05:25:26

标签: asp.net

我在 iTextSharp 库中制作了pdf文件。我使用以下代码。这个pdf是自动保存在文件夹中。但我希望pdf打开是在新标签页。怎么可能。

using (System.IO.MemoryStream ms = new System.IO.MemoryStream())

        {

            using (iTextSharp.text.Document doc = new iTextSharp.text.Document())
            {
                using (iTextSharp.text.pdf.PdfWriter writer = iTextSharp.text.pdf.PdfWriter.GetInstance(doc, ms))
                {
                    doc.Open();
                    doc.Add(new iTextSharp.text.Paragraph(lblMessage.Text.ToString()));
                    doc.Close();
                    Response.Clear();
                    Response.ContentType = "application/pdf";
                    Response.AddHeader("content-disposition", "attachment;filename=Receipt3.pdf");
                    Response.Cache.SetCacheability(HttpCacheability.NoCache);
                    Response.BinaryWrite(ms.ToArray());
                    System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest();
                }
            }

        }

1 个答案:

答案 0 :(得分:3)

您可能需要考虑<a> target attribute。您可以使用它在新窗口中打开PDF,可能使用以下内容:

<a href="GeneratePdf.ashx?somekey=10" target="_blank">

更新 - 正如您现在所说的那样,您不介意它是否在浏览器窗口中,我首选的技术是根据MercerTraieste答案将内容处置更改为附件。

如果您使用的是ASP.NET,那么考虑编写自定义HttpHandler来为您流式传输PDF绝对是一个好主意。