2011-06-30 212 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是一個不錯的主意。