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

答えて

3

<a> target attributeと考えてください。あなたは今、私の好ま、あなたはそれがブラウザウィンドウ内にあるかどうか気にしないことを言ってきたように

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

Update-:あなたは、おそらくのようなものを使用して、新しいウィンドウでPDFを開くには、これを使用することができますMercerTraiesteの回答に従って、コンテンツの配置を添付ファイルに変更することです。

ASP.NETを使用している場合は、カスタムHttpHandlerを作成してPDFをストリームすることを検討することをお勧めします。

3

あなたがダウンロードを強制でき、これはちょっとyouur問題を解決:

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

これが私が通常PDFをクライアントに送る方法です。オープンオプションが選択されている場合は、技術的にはAcrobatで直接開きますが、これは新しいブラウザウィンドウではありません。 しかし、それはまだ私の好ましい解決策ですので+1です。 – RichardOD

+1

私の音楽へのコメントを参照してください。新しい要件は、まずPDFを保存しないことです。 – Hcabnettek

+0

私は実際にこれが良いと思う。ブラウザで実際に開く必要はありませんでした。それは、現在のページから離れずに、クライアント上で開いて読めるようにするだけでした。 – Hcabnettek

関連する問題