IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Comment ouvrir un PDF dans une nouvelle fenêtre ?


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Points : 54
    Points
    54
    Par défaut Comment ouvrir un PDF dans une nouvelle fenêtre ?
    Bonjour à tous,
    J'ai un fichier PDF sur mon serveur et j'aimerais l'ouvrir (en code-behind) dans une nouvelle fenêtre.
    J'ai réussi à ouvrir ce pdf
    - dans la même fenêtre
    - dans une nouvelle fenêtre MAIS après avoir choisi ouvrir parmis les choix proposés (ouvrir/enregistrer/annuler)...

    J'aimerais que le pdf s'affiche dans une nouvelle fenêtre mais sans aucune intervention...
    Comment faire ?

    Par avance, merci.

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Tu peux pas

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    Tu peux pas
    Dommage...
    Merci quand même, j'arrête donc mes essais/tests.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut En mixant un peu, on peut...
    j'ai eu ce problème pour imprimer un PDF généré à partir d'un composant ReportViewer (le bouton Print ne s'affiche pas sous Chrome)...
    Je ne sais pas du tout si c'est la meilleure solution, mais ça fonctionne... Si ça peut aider quelqu'un...

    Côté formulaire ASP, création d'un bouton-Lien qui va permettre sur son évènement OnClientClick() d'appeler une fonction JavaScript, afin d'ouvrir la nouvelle page et sur son événement OnClick, en code-behind, d'instancier le flux du HttpContext.Current.Response...

    exemple bouton :
    <asp:Button runat="server" ID="btnLienPrint" OnClientClick="openInNewTab();" OnClick="btnLienPrint_OnClick" Visible="false" CssClass="btn_imprimer" Text="Impression PDF"></asp:Button>

    script : (il n'est pas de moi : je l'ai copié-collé à partir d'un forum mais à la fin de mes recherches, je ne me souviens plus de l'auteur... désolée pour elle/lui et Merci !)
    <script type="text/javascript"> function openInNewTab() { window.document.forms[0].target = '_blank'; setTimeout(function (){ window.document.forms[0].target = '';}, 0);} </script>

    exemple code-behind sur le OnClick du bouton :
    // variables de travail
    Warning[] warnings;
    string[] streamids;
    string mimeType, encoding, extension;
    //composant reportViewer :
    //récupération des paramètres necessaires
    ReportViewer rp = this.rpvReportViewer;
    rp.ProcessingMode = ProcessingMode.Remote;
    byte[] bytes = rp.ServerReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamids, out warnings);
    // construction du PDF
    string pdfPath = Server.MapPath("~") + "pdf." + extension;
    FileStream pdfFile = new FileStream(pdfPath, FileMode.Create);
    pdfFile.Write(bytes, 0, bytes.Length);
    pdfFile.Close();
    //paramétrage du fux de la réponse Http et mise en mémoire (le contexte reste à l'identique sur la nouvelle page, ouverte par le script ASP, sur le OnClientClick() du bouton)
    HttpContext.Current.Response.Buffer = true;
    HttpContext.Current.Response.Clear();
    HttpContext.Current.Response.ContentType = mimeType; // ici : "application/pdf";
    HttpContext.Current.Response.BufferOutput = true;
    HttpContext.Current.Response.AddHeader("Content-Disposition", "inline; filename=" + pdfFile.Name);
    HttpContext.Current.Response.BinaryWrite(bytes);
    HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
    HttpContext.Current.Response.Flush();

Discussions similaires

  1. Ouvrir un état dans une nouvelle fenêtre
    Par thanathz dans le forum WebDev
    Réponses: 1
    Dernier message: 07/02/2008, 09h15
  2. Ouvrir un fichier dans une nouvelle fenêtre
    Par paradeofphp dans le forum ASP.NET
    Réponses: 17
    Dernier message: 20/11/2007, 15h31
  3. Ouvrir un lien dans une nouvelle fenêtre
    Par magicibis dans le forum SharePoint
    Réponses: 0
    Dernier message: 08/08/2007, 17h21
  4. Réponses: 2
    Dernier message: 04/06/2007, 09h33
  5. Ouvrir un lien dans une nouvelle fenêtre
    Par Le Lézard dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/12/2004, 14h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo