2009-07-10 6 views
3

Ich möchte ein PDF in eine neue Browser-Instanz streamen. Im Moment habe ich diesePDF in neue Browser-Instanz oder Tab streamen?

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() 

Aber das übernimmt meine vorhandenen Fenster und navigiert mich von der Seite entfernt. Ich möchte eine neue Registerkarte oder ein neues Fenster erstellen und dort die PDF-Datei anzeigen.

Weiß jemand, wie man das macht?

+0

Die meisten Menschen einen Download bevorzugen. – schar

Antwort

3

Sie könnten die <a> target attribute betrachten. Damit können Sie die PDF-Datei in einem neuen Fenster zu öffnen, vielleicht etwas mit wie:

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

Update-, wie Sie jetzt gesagt haben, dass es Ihnen nichts ausmacht, ob es in einem Browser-Fenster ist oder nicht, meine bevorzugte Die Technik besteht darin, die Inhaltsdisposition gemäß der MercerTraieste-Antwort in Anhang zu ändern.

Wenn Sie ASP.NET verwenden, ist es auf jeden Fall eine gute Idee, einen benutzerdefinierten HttpHandler zu schreiben, um das PDF für Sie zu streamen.

3

Sie einen Download zwingen könnte, dies löst irgendwie youur Problem:

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

So sende ich normalerweise PDFs an den Client. Obwohl es technisch geöffnet ist, wird es direkt in Acrobat geöffnet, wenn Sie die Option Öffnen auswählen, die kein neues Browserfenster ist. Allerdings ist es immer noch meine bevorzugte Lösung so +1. – RichardOD

+1

siehe meine Kommentare zu musicfreak. Eine neue Anforderung besteht darin, das PDF nicht zuerst zu speichern. – Hcabnettek

+0

Ich denke eigentlich, das ist in Ordnung. Es musste nicht wirklich in einem Browser geöffnet werden. Es musste nur auf dem Client geöffnet und lesbar sein, ohne sie von der aktuellen Seite weg zu navigieren. – Hcabnettek