2009-07-10 36 views
3

我想將PDF流式傳輸到新的瀏覽器實例。我目前有這個將PDF流式傳輸到新的瀏覽器實例或選項卡?

Response.ContentType = "application/pdf" 
Response.AddHeader("Content-Disposition", "inline; filename=""" & Path.GetFileName(pdfFile) & """") 
Response.AddHeader("Content-Length", stream.Length) 
Response.BinaryWrite(stream.ToArray()) 
Response.Flush() 

但是,這接管了我現有的窗口,並導航我遠離頁面。我想產生一個新的標籤或窗口並在那裏顯示PDF。

有誰知道如何做到這一點?

+0

大多數人喜歡下載。 – schar 2009-07-10 21:59:54

回答

3

您可能要考慮<a> target attribute。你可以使用這個在新窗口中打開PDF,或者使用類似:

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

更新 - 因爲你現在說你不介意它是否是在瀏覽器窗口或沒有,我的首選技巧是根據MercerTraieste的答案將內容配置更改爲附件。

如果您使用的是ASP.NET,那麼考慮編寫一個自定義的HttpHandler來爲您流式傳輸PDF是一個不錯的主意。

3

你可以強制下載,這還挺解決youur問題:

Response.AddHeader("Content-Disposition", "attachment;filename""" & Path.GetFileName(pdfFile) & """") 
+0

這就是我通常將PDF發送給客戶端的方式。儘管從技術上講,如果選擇了打開選項,它將直接在Acrobat中打開,這不是一個新的瀏覽器窗口。 但它仍然是我的首選解決方案,所以+1。 – RichardOD 2009-07-10 21:58:41

+1

看到我對musicfreak的評論。新的要求是不要先保存PDF。 – Hcabnettek 2009-07-10 21:58:55

+0

我其實覺得這很好。它不需要真正在瀏覽器中打開。它只需要在客戶端打開並閱讀,而無需從當前頁面導航它們。 – Hcabnettek 2009-07-10 22:03:20

相關問題