2011-06-30 169 views
0

我制作pdf文件在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(); 
       } 
      } 

     } 

回答

3

您可能要考虑<a> target attribute。你可以使用这个在新窗口中打开PDF,或者使用类似:

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

更新 - 因为你现在说你不介意它是否是在浏览器窗口或没有,我的首选技巧是根据MercerTraieste的答案将内容配置更改为附件。

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