2009-07-10 4 views
3

Je souhaite diffuser un fichier PDF dans une nouvelle instance de navigateur. J'ai actuellement ceciDiffuser un fichier PDF vers une nouvelle instance de navigateur ou un nouvel onglet?

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

Mais ceci prend en charge ma fenêtre existante et m'éloigne de la page. Je veux générer un nouvel onglet ou une nouvelle fenêtre et y afficher le PDF.

Est-ce que quelqu'un sait comment faire cela?

+0

La plupart des gens préfèrent un téléchargement. – schar

Répondre

3

Vous pouvez envisager le <a> target attribute. Vous pouvez l'utiliser pour ouvrir le PDF dans une nouvelle fenêtre, peut-être en utilisant quelque chose comme:

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

Update- que vous venez de dire que vous ne me dérange pas que ce soit dans une fenêtre de navigateur ou non, mon préféré La technique consiste à modifier la disposition du contenu en pièce jointe selon la réponse de MercerTraieste.

Si vous utilisez ASP.NET, il est certainement recommandé d'écrire un HttpHandler personnalisé pour diffuser le PDF pour vous.

3

Vous pouvez forcer un téléchargement, cela résout un peu youur problème:

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

C'est ainsi que j'envoie normalement des fichiers PDF au client. Bien que techniquement, il s'ouvrira directement dans Acrobat si l'option d'ouverture est sélectionnée, ce qui n'est pas une nouvelle fenêtre de navigateur. Cependant c'est toujours ma solution préférée donc +1. – RichardOD

+1

voir mes commentaires à musicfreak. Une nouvelle exigence est de ne pas d'abord enregistrer le PDF. – Hcabnettek

+0

Je pense vraiment que c'est bien. Il n'a pas besoin d'ouvrir vraiment dans un navigateur. Il a juste besoin d'être ouvert et lisible sur le client sans les naviguer loin de la page en cours. – Hcabnettek

Questions connexes