2009-07-10 32 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

相关问题