Потоковое PDF в новый экземпляр браузера или вкладку? - PullRequest
3 голосов
/ 11 июля 2009

Я хочу передать 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.

Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

3 голосов
/ 11 июля 2009

Вы можете форсировать загрузку, это решает вашу проблему:

Response.AddHeader("Content-Disposition", "attachment;filename""" & Path.GetFileName(pdfFile) & """")
3 голосов
/ 11 июля 2009

Возможно, вы захотите рассмотреть целевой атрибут <a> . Вы можете использовать это, чтобы открыть PDF в новом окне, возможно, используя что-то вроде:

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

Обновление - как вы уже сказали, что вы не возражаете против того, находится ли оно в окне браузера или нет, я предпочитаю менять расположение содержимого на вложение согласно ответу MercerTraieste.

Если вы используете ASP.NET, неплохо было бы подумать о написании собственного HttpHandler для потоковой передачи PDF для вас.

...